Caml1999I037F! 43*Format_docӠ#Doc@(box_type;@@!H@@4utils/format_doc.mlid<@d<C@@A@!V@@ eDH eDK@@ B@"HV@@fLPfLT@@)C@#HoV@@gUYgU^@@2D@!B@@%h_c&h_f@@;E@@@A@@@@@)c*,@@A@>@@A@$stag;@@@A&Stdlib&Format$stag@@@y@@@@=jhj>jh@@@@SF@A@'element;@@$Textd&stringQ@@@@@SnTn@@iH@)With_sizee#intA@@@@@codo@@yI@(Open_boxf$kindg@@|@@@tpup!@@J@&indenth@@@@@p"p,@@K@@@pp.@@L@)Close_boxi@@q/3q/>@@M@(Open_tagjd&Format$stag@@@@@r?Cr?\@@N@)Close_tagk@@s]as]l@@O@)Open_tboxl@@tmqtm|@@P@)Tab_breakm%widthn@@`@@@u}u}@@Q@&offseto@@l@@@u}u}@@R@@@u}u}@@S@'Set_tabp@@vv@@T@*Close_tboxq@@ww@@U@,Simple_breakr&spacess@@@@@xx@@ V@&indentt@@@@@xx@@W@@@xx @@X@%Breaku$fitsv@@@@@@@@@@@@@@@@%y  &y  6@@;Y@&breaksw@@@@@@@@@@@@@@@@>y  7?y  B@@TZ@@@By  Cy  D@@X[@%Flushx'newliney@@$boolE@@@~Uz E VVz E b@@k\@@@Yz E IZz E d@@o]@'Newlinez@@b{ e ic{ e r@@x^@*If_newline{@@k| s wl| s @@_@*Deprecated|@F&Format)formatter@@@z@@{$unitF@@@|@@}@@~  ~  @@`@@@A@@@@@m@@@@G@A@!t;@@@A@@@@@D  D  @@@@z@A@#fmt;!a@!b@@B@At'format4"@@@@@@@@@O@@@@@@F  F  @@@@{@A@(printer0;@@@A@@@@@@ @@@@@@@@@H  H  @@@@|@A@'printer;!a@@A@A@ @@&@@@@@n@@@@@I  I  @@@@}@A@%emptyF@@@@M  M  +@@ ~@@&format@&Format)formatter@@@@@@a@@@@@@@@@@@@@Q  Q  @@,@@$fold@@#acc@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@>T  ?T  7@@T@@@#msg@!a@@@@@@@@@ @@@XX  YX  @@nA@@$kmsg@@@@@@@!b@@@@@@)!a@@@@@@@@@@@}Y  ~Y  @@B@@&printf@?!a@Ġ@@@@@@@@ @@@] ; =] ; a@@C@@'kprintf@@@@@@@!b@@@@@@g!a@Р@@@@@@@@@@@@@ @@@@@^ b d^ b @@D@@(open_box@_@@@@@@y@@@@@@@@@@@@@bb1@@E@@)close_box@@@@c24c2K@@F@@$text@@@@@@@eMOeMg@@G@@&string@@@@@@@ fhj fh@@"H@@%bytes#%bytesC@@@@@@@g g@@5I@@)with_size6@@@@@@@0h1h@@FJ@@#intG@@@@@@@AjBj@@WK@@%floatX%floatD@@@@@@@TkUk@@jL@@$chark$charB@@@@@@@glhl@@}M@@$bool~$@@@@@@@xm  ym !@@N@@%space@@@@o#%o#8@@O@@#cut@@@@p9;p9L@@P@@%break&spacesB@@@@@&indentL@@@@@@@@@@@@@qMOqM~@@Q@@,custom_break$fits@v@@@@l@@@@@@@@@@@&breaks@@@@@@@@@@@@@@@@@@@@@@@@st@@R@@-force_newline@@@@uu@@S@@*if_newline@@@@vv @@T@@%flush)@@@@xx#@@'U@@*force_stop5@@@@y$&y$>@@3V@@)open_tboxA@@@@){@B*{@Y@@?W@@'set_tabM@@@@5|Z\6|Zq@@KX@@#tabY@@@@A}rtB}r@@WY@@)tab_break%width@@@@@ &offset@@@ @@ y@@@ @@ @@@a~b~@@wZ@@*close_tbox@@@@mn@@[@@(open_tagN@@@@@@@~@@\@@)close_tag@@@@ @@]@@$list#sep&optionL@@@@@@@@@!a@@@@@@$listK@@@@@@@@@@@I@@^@@$iter#sep0@@@@@@@@$iter@@!a@)@@ b@@@!@@"@@#@!b@,@@$n@@@%@@&@@'@@(@@@@*@@+@@@-@@.@@/@@0@JL@@_@@%array#sept+@@@1@@@2@@3@&!a@6@@@4@@5.%arrayJ@@@7@@@8@@9@@:@+,@@A`@@#seq #sepX@@@;@@@<@@=@S!a@@@@@>@@?[#Seq!t@@@A@@@B@@C@@D@YZ#@@oa@@&option $noneϠ@@@E@@@F@@G@!a@J@@@H@@I @@@K@@@L@@M@@N@%'%d@@b@@&result "ok!a@T@@@O@@P%error!e@S@@@Q@@Rx&result@@@U@@@V@@W@@X@ege@@c@@&either $leftѠ!a@^@@@Y@@Z%rightߠ!b@]@@@[@@\&Either!t@@@_@@@`@@a@@b@@@d@@,align_prefix @A@M@@@d@@@@c@@e@@@f@@gS[@@@h@@@i@@j@ @@#e@@-align_prefix2@@p@@@l@@@@k@@m@@n@@@@@p@@@@o@@q@@r@@@@t@@@@s@@u@@v@@w@DEC@@Zf@@@@H^IEH@^g@@@#doc;@@@Af!t@@@x@@@@YZ@@@@oh@A@!t;@@@A@@@y@@@@hi@@@@~n@A@)formatter;@@@A@@@@@rs@@@@o@A@'printer;!a@|@A@A@@@@z@@{@@@}@@@~@@@@n@@@@@@@@@p@A@)formatter@m#refB@@@@@@@@$@@@@@@@@q@@.format_printer;!a@@A@A@&Format)formatter@@@@@@@@L@@@@@@@n@@@@@@@@@r@A@&compat@j!a@@@@@@8 @@@@@@@@s@@'compat1@@"p1@@@#!a@@@@@@@@@@@& @@@@@@@@N@@(t@@'compat2@@"p1@@@@"p2@@@P!a@@@@@@@@@@@@@@@@W@@@@@@@@@@COODO@@Yu@@2deprecated_printer@@!&Format)formatter@@@@@@@@@@@@@@@@@@@@@@@@@@j11k1x@@v@@*deprecated@!a@@@@@@@@@@@@yyy@@w@@+deprecated1@@"p1@@@!a@@@@@@@@@@@Š @@@@@@@@@@x@@'fprintf@/@@@@@@&format!a@ʠ@@@@ǠJ@@@@@@@@@@@@@Q@@y@@(kfprintf@@Z@@@@@!a@@@@@@e@@@@@@'format4!b@ؠv@@@ՠ@@@Ԡ"@@@@@@@@@@@@RR@@z@@(asprintf@'format4!a@@@@ޠ@@@ݠ@@@@@@@@@@@+,@@A{@@)kasprintf@@@@@@@!a@@@@@@'format4!b@@@@@@@@@@@@@@@@@\]4@@r|@@'dprintf@5'format4!a@@@@@@@@@@@@@@@@@@@@@@@@@@777{@@}@@(kdprintf@@@@@@@@ @@@@@@@!a@@@@@@x'format4!b@0@@@:@@@@@@@@@@@@@||@@~@@*doc_printf@'format4!a@ Q@@@ [@@@ |@@@@@@ @@ @@@R@@@@+kdoc_printf@@@@@@@!r@@@@@@'format4!a@@@@@@@@@@@@@@@@@ SS S@@ *@@+doc_printer@B!a@@@@@@'printer @@@@@@ / 0@@ E@@&pp_docY@@@ @@@!@ ? @@@ U@@/pp_print_stringi@@@"@@@#@ PRR QRu@@ f@@2pp_print_substring#pos @@@$@@%#len @@@&@@' #@@@(@@@)@@*@@+@ uvv vv@@ @@-pp_print_text 4@@@,@@@-@  @@ @@.pp_print_bytesz@@@.@@@/@  @@ @@+pp_print_as@@@@0@@1@ N@@@2@@3@ f@@@4@@57@@@6@@7@@8@@9@  +@@ @@5pp_print_substring_as#pos m@@@:@@;#len w@@@<@@=@V@@@>@@?@ @@@@@@A@ @@@B@@Co@@@D@@E@@F@@G@@H@@I@ ,, G@@ @@-pp_print_char@@@J@@@K@  @@ @@,pp_print_int. @@@L@@@M@  @@ +@@.pp_print_float?@@@N@@@O@ & '@@ <@@-pp_print_boolP@@@P@@@Q@ 7 8&@@ M@@0pp_print_nothinga@@@R@@@S@ H'' I'I@@ ^@@-pp_print_iter&pp_sep{@@@T@@@U@@@V@@W@@@!a@a@@X@@@Y@@Z@@[@!b@d@@\@@@]@@^@@_@@`@@@@b@@c@@@e@@f@@g@@h@ kk @@ @@-pp_print_list&pp_sep  $@@@i@@@j@@@k@@l@Ϡ!a@o@@@m@@nנ @@@p@@@q@@r@@s@  @@ @@.pp_print_array&pp_sep5 T@@@t@@@u@@@v@@w@!a@z@@@x@@yƠ @@@{@@@|@@}@@~@  g@@ @@,pp_print_seq&pp_sepe" @@@@@@@@@@@@/!a@@@@@@7 #Seq!t@@@@@@@@@@@ "hh #h@@ 8@@/pp_print_option$noneU @@@@@@@@@@@@b!a@@@@@@j @@@@@@@@@@@ R S@@ h@@/pp_print_result"ok!a@@@@@@%error!e@@@@@@ F&result@@@@@@@@@@@   M@@ @@/pp_print_either$left!a@@@@@@%right!b@@@@@@Ƞ w&Either!t@@@@@@@@@@@  N N  c @@ @@,pp_open_stagޠ &Format$stag@@@@@@@      @@ @@-pp_close_stag T@@@@@@@     !@@ @@+pp_open_box @@@@@@@ ! !  ! !%@@ @@,pp_close_box v@@@@@@@ !&!& !&!D@@ @@.pp_print_space% @@@@@@@ !^!^ !^!~@@ "@@,pp_print_cut6 @@@@@@@ !! !!@@ 3@@.pp_print_break@@@@@@@ @@@@@@ @@@@@ @@@@@@@@@@ A!! B!!@@ W@@5pp_print_custom_break@@@@@@$fits@ @@@à@ @@@ @ @@@@@@@&breaks@@@@Ƞ@@@@Ǡ@@@@@@@@ @@@@@@@@@@ !! !"3@@ @@,pp_open_tbox @@@@@@@ "M"M "M"k@@ @@-pp_close_tbox #@@@@@@@ "l"l "l"@@ @@*pp_set_tabҠ 4@@@@@@@ "" ""@@ @@,pp_print_tab E@@@@@@@  ""  ""@@ @@/pp_print_tbreak@Q@@@@@@ @@@@@@ @@@@@ j@@@@@@@@@@  ""  ""@@ @@3pp_print_if_newline z@@@@@@@ # #  # #E@@ @@0pp_force_newline) @@@@@@@ #F#F #F#h@@ &@@.pp_print_flush: @@@@@@@ !#i#i "#i#@@ 7@@0pp_print_newlineK @@@@@@@ 2## 3##@@ H@@%comma\ @@@@@@@ C## D#$@@ Y@@)semicolonm @@@@@@@ T$$ U$$ @@ j@@.pp_two_columns#sepʠ @@@@@@@@)max_linesؠ @@@@@@@@@@@@@@@Ҡ@ ?@@@@ E@@@@@@@@@@ @@@@@@@@@@@@ $>$> $v$@@ @@@6-*Format_doc0uy@GmWUࠠ-Stdlib__Uchar0=H^V9>ɠ+Stdlib__Seq0?72#[O.Stdlib__Format00FClW.Stdlib__Either0HD ?|>.Stdlib__Domain0'Ϳo\0m.K.Stdlib__Buffer0,I[?z&Stdlib0t0VoS%{<F:8CamlinternalFormatBasics0|.e1R$|o@@@Caml1999T037 $+"2C*Format_doc*ocaml.text&_none_@@A : Composable document for the {!Format} formatting engine. 4utils/format_doc.mliP77P7v@@@@@@3@@@@@@#intA;@@#intA@@@@@;@A@$charB;@@$charA@@@@@A@A@&stringQ;@@&stringA@@@@@G@@@%bytesC;@@%bytesA@@@@@M@@@%floatD;@@%floatA@@@@@S@@@$boolE;@@%falsec@@]@$trued@@c@@@A@@@@@d@A@$unitF;@@"()e@@n@@@A@@@@@o@A@ #exnG;@@@A@@@@@s@@@#effH;@@O@A@A@@@@@@|@@@,continuationI;@@Q@@P@B,continuationA@nY@@@@@@@@@%arrayJ;@@R@A%arrayA@@@@@@@@@ $listK;@@S@A"[]f@@@"::g@@@T@@@ @@A@Y@@@@@@@@&optionL;@@V@A$Noneh@@@$Somei@@@@@A@Y@@@@@@@@)nativeintM;@@)nativeintA@@@@@@@@%int32N;@@%int32A@@@@@@@@%int64O;@@%int64A@@@@@@@@&lazy_tP;@@X@A&lazy_tA@Y@@@@@@@@ 5extension_constructorR;@@5extension_constructorA@@@@@@@@*floatarrayS;@@*floatarrayA@@@@@@@@&iarrayT;@@Y@A&iarrayA@Y@@@@@@@@ *atomic_locU;@@Z@A*atomic_locA@@@@@@ @@@ .Assert_failure`#@@@@@J@@@@@@@@[@@A!=ocaml.warn_on_literal_pattern%@&@0Division_by_zero]#@@@A+ . .@+End_of_file\#$@@@A366@'FailureY#,@'@@A<??@0Invalid_argumentX#5@0@@AE$H#H@-Match_failureV#>@@=@9@;@@a@@AV5Y4Y@)Not_foundZ#O@@@A^=a<a@-Out_of_memoryW#W@@@AfEiDi@.Stack_overflow^#_@@@AnMqLq@.Sys_blocked_io_#g@@@AvUyTy@)Sys_error[#o@j@@A^]@:Undefined_recursive_modulea#x@@w@s@u@@h@@Aon@:Continuation_already_takenb#@@@Awv@&Stdlib@A  This module introduces a pure and immutable document type which represents a sequence of formatting instructions to be printed by a formatting engine at later point. At the same time, it also provides format string interpreter which produces this document type from format string and their associated printers. The module is designed to be source compatible with code defining format printers: replacing `Format` by `Format_doc` in your code will convert `Format` printers to `Format_doc` printers. Rxx[@@@@@@#DocA^^@g@@БŐ ) {2 Type definitions and core functions }``@@@@@@3@@AA+(box_typeBc*1c*9@@;@@!H@@d<@d<C@@A@!V@@eDHeDK@@B@"HV@@fLPfLT@@C@#HoV@@gUYgU^@@ D@!B@@h_ch_f@@E@@@A@@@@@c*,@)ocaml.doc2 Format box types bb)@@@@@@@A@(@@@#AAd<B?@>@@@B@#>>eDJ<@;@@@?@#;;#fLR9@8@@@<@#88)gU[6@5@@@9@#55/h_e3@2@@@6@@A@20A/.@..@@@.@.@@x=@@A+$stagCFjhoGjhs@@;@@@A&Format$stag@@@R@@@@SjhjTjh@@@@lF@@@Aг ^jhv_jh|@bjh}@@@3a``aaaaa@a%;@@@A-@@@@@@@@@@@@A@@@@3nmmnnnnn@ @A @A+'elementcD|m}m@@;@@$TextdT@@@@@nn@@H@)With_sizeen@@@ @@oo@@I@(Open_boxf$kindg@@@@@!pp!@@J@&indenth@@@@@$p"p,@@K@@@pp.@@L@)Close_boxi@@q/3q/>@@M@(Open_tagjA&Format$stag@@@'@@r?Cr?\@@N@)Close_tagk@@s]as]l@@O@)Open_tboxl@@tmqtm|@@P@)Tab_breakm%widthn@@@@@(u}u}@@Q@&offseto@@@@@+u}u}@@R@@@u}u}@@ S@'Set_tabp@@vv@@)T@*Close_tboxq@@ww@@2U@,Simple_breakr&spacess@@@@@.*x+x@@CV@&indentt@@ @@@16x7x@@OW@@@:x;x @@SX@%Breaku$fitsv@@@@@@:@*@@@;@$@@@<@@9[y  \y  6@@tY@&breaksw@@@@@@5@@@@6@@@@7@@8E@Avy  7wy  B@@Z@@@zy  {y  D@@[@%Flushx'newliney@@B@@@Ez E Vz E b@@\@@@z E Iz E d@@]@'Newlinez@@{ e i{ e r@@^@*If_newline{@@| s w| s @@_@*Deprecated|@#&Format)formatter@@@H@@J`@@@I@@K@@~  ~  @ Escape hatch: a {!Format} printer used to provide backward-compatibility for user-defined printer (from the [#install_printer] toplevel directive for instance).   A V o@@@@@@@`@@@A@@@@@m@̐ 5 Base formatting instruction recognized by {!Format} ll@@@@@@@@@G@@#]]nn@V@г_&stringn`@@f3@w;@@@A@@@@@&$@@@Af@@@@h@#ddoo@]@гf#intog@@mh@@@@j@#ffpp @L@#hhc p@b@@Ш@гk(box_typepp@@s,@@v@@"/@r@#nnip(@h@@Ш@гq#int(p)r@@x=s@@{@@%@@w@@@s@#oo0q/5m@l@@@p@#ll6r?E7r?M@b@гnpAr?QBr?W@sEr?Xq@r@@{[s@@@@u@#qqLs]co@n@@@r@#nnRtmsl@k@@@o@#kkXu}Yu}@Q@#mmh_u}@g@@Ш@гp#inthu}iu}@@x~@@{@@)@w@#ssnqu}@m@@Ш@гv#intzu}w@@}x@@@@,@|@@@x@#ttvr@q@@@u@#qqwo@n@@@r@#nnxx@T@#ppkx@j@@Ш@гs#intxx@@{@@~@@/@z@#vvqx@p@@Ш@гy#intxz@@Ű{@@@@2@@@@{@#wwy  y  @>@#yydy  @c@@Ш@ЦВ@г~&stringy  y  @@h@@@г#inty  #y  &@@n@@@г&stringy  )y  /@@t@@@@@!ay  3y  5@ @@@@=@@#~y  =@}@@Ш@А!ay  @@@@@B@@@@@#z E Kz E P@s@#~ z E ]@}@@Ш@г$boolz E ^@@'@@@@F*@@@@@#{ e k@@@@@# | s y@~@@@@#~~&~  '~  @^@б@г~3~  4~  @7~  8~  @@@N@@г$unitA~  B~  @@W@@X@@@@DU@@@@@@@A@O`@@@@@@@3XWWXXXXX@n@A@A+!t}EfD  gD  @@;@@ A@@@@@jD  @j8 Immutable document typewC q sxC q @@@@@@@@@z@@@A@y@@@@@@@3@ @A!@A+#fmt~FF  F  @А!a@3@<6;@@@@@B@A@@!ʠ@@!@@@!@GG@BB@@@F  F  @@@@{@@AF  F  @@BAА!b@,F  F  @@ @;4 @BAB'format4=G@w@@@|@@@G@@@@O@@@@@@0@@@-@@AгF  5@А!aWF  F  @@г !tF  F  @@(c@@г%!tF  F  @@-m@@А!b-rF  F  @@@BuF  Y@@[@@3@v@A\[@A+(printer0GH  H  @@;@@A@@@@!@@!@@@!@@!@@@@.H  /H  @@@@G|@@@Aб@г!t:H  ;H  @@398899999@u&;@@@A.@@@!@!@@@@@@@@A@@г !tOH  !@@'"@@0#@@%@@3ONNOOOOO@@A&%@A+'printerH]I  ^I  @А!a@"3dccddddd@,QK;@@"@A@A@@"&@@@"'@"G@B@@@|I  }I  @@@@}@@AI  I  @@@; @A;A@'I@"@@" u@@@"@@" n@@@@@@@@@@Aб@А!a0I  I  @@г(printer0I  $@@:%@@; &@@(@@3@;@A)(@%emptyM  #M  (@гP!tM  *M  +@@ @@@"+3@Td;@A@@@M   @0 Empty document L  L  @@@@@@@~@@@ᐠ@@@@@@!&formatQ  Q  @б@г]&Format)formatterQ  Q  @ Q  Q  @@@@@@",3@CVA@A @@б@г!t Q   Q  @@ @@@"-@@г$unitQ  Q  @@ @@@".@@@@@"/@@"0# @@@+@@"1 @@"2(3@@@(Q  @( _ [format ppf doc] sends the format instruction of [doc] to the Format's formatter [doc]. 5O - /6P z @@@@@@@N@@"@8I@@@@@@G$foldLT  MT  @б@б@А#acc@"AI@"33WVVWWWWW@^|6@A]T  ^T  @@б@г점'elementhT  iT  @@ @@@"4@@А#accrT  sT  !@@@@@"5#@@"6@@@(@@"7 @@"8#! @@б@А#acc.)T  &T  *@@б@г)!tT  .T  /@@ @@@"9:@@А#accC>T  3T  7@@@@@":J@@";E@@@O@@"< @@"=J! @@@0@@"> @@"?OT  @@@T  @ 4 Fold over a document as a sequence of instructions S  S  @@@@@@@@@@$@ΐ@@@@@@o#msgX  X  @б@гK#fmtX  X  @А!a@"JI@"B3@>@AX  X  @@г!tX  X  @@ @@@"C@@@%@@@"FX  $@@А!a"X  X  @@@@@"G)@@"H$ @@@X   @ S {!msg} and {!kmsg} produce a document from a format string and its argument V 9 ;W  @@@@@@@4A@@@/@@@@@@C$kmsg2Y  3Y  @б@б@г٠!t?Y  @Y  @@ @@@"K3A@@AAAAA@^y:@A@@А!b@"ZI@"L PY  QY  @@@@@"M @@"N@@б@гϠ#fmt`Y  aY  @А!a@"XI@"O'lY  mY  @@А!b(.sY  tY  @@@/@@@"R6{Y  @@А!a;Y  Y  @@@@@"S @@"TB @@@9@@"U @@"VGY   @@@Y  @@B@@@@N&printf] ; A] ; G@б@г#fmt] ; X] ; [@А!a@"cI@"[3@m%@A] ; J] ; L@@г(printer0] ; N] ; V@@ @@@"\@@@%@@@"_] ; I$@@А!a"] ; _] ; a@@@@@"`)@@"a$ @@@] ; = @א W {!printf} and {!kprintf} produce a printer from a format string and its argument[  \ * :@@@@@@@C@@@@@@@@@C'kprintf^ b h^ b o@б@б@г!t ^ b r ^ b s@@ @@@"d3        @^y:@A@@А!b@"vI@"e  ^ b w ^ b y@@@@@"f @@"g@@б@г#fmt )^ b  *^ b @А!a@"tI@"h' 5^ b  6^ b @@б@г۠!t A^ b  B^ b @@ @@@"i9@@А!b7= K^ b  L^ b @@@@@"j>@@"kD@@@0& @@@"nJ X^ b ~/@@А!a-O ]^ b  ^^ b @@@@@"o4@@"pV @@@M@@"q @@"r[ i^ b q @@@ l^ b d@@ D@@@@b(open_box wb  xb@б@г(box_type b b@@ @@@"w3        @{@A@@б@г f#int b" b%@@ @@@"x@@г(printer0 b) b1@@ @@@"y@@@@@"z@@"{# @@@+@@"| @@"}(.@@@ b@ g The functions below mirror {!Format} printers, without the [pp_print_] prefix naming convention  `   a @@@@@@@ E@@"@ Ӑ@@@@@@G)close_box c28 c2A@г (printer0 c2C c2K@@ @@@"~3        @^s6@A@@@ c24 @@ F@@ @@$text eMS eMW@г'printer eM` eMg@г Π&string eMY eM_@@ @@@"3        @)<'@A@@@ @@@" @@@ eMO@@ .G@@@@ &string !fhn "fht@г͠'printer *fh} +fh@г &string 4fhv 5fh|@@ @@@"3 6 5 5 6 6 6 6 6@.K'@A@@@ @@@" @@@ Cfhj@@ [H@@@@ %bytes Ng Og@г'printer Wg Xg@г "%bytes ag bg@@ @@@"3 c b b c c c c c@.K'@A@@@ @@@" @@@ pg@@ I@@@@ )with_size {h |h@г''printer h h@г a#int h h@@ @@@"3        @.K'@A@@@ @@@" @@@ h@@ J@@@@ #int j j@гT'printer j j@г #int j j@@ @@@"3        @.K'@A@@@ @@@" @@@ j@@ K@@@@ %float k k@г'printer k k@г %float k k@@ @@@"3        @.K'@A@@@ @@@" @@@ k@@ L@@@@ $char l l@г'printer l l@г ⠐$char l l@@ @@@"3        @.K'@A@@@ @@@" @@@ $l@@ <M@@@@ $bool /m  0m @г۠'printer 8m  9m !@г $bool Bm  Cm @@ @@@"3 D C C D D D D D@.K'@A@@@ @@@" @@@ Qm  @@ iN@@@@ %space \o#) ]o#.@гH(printer0 eo#0 fo#8@@ @@@"3 g f f g g g g g@$A@A@@@ oo#% @@ O@@ @@#cut zp9? {p9B@гf(printer0 p9D p9L@@ @@@"3        @2@A@@@ p9; @@ P@@ @@%break qMS qMX@б&spacesг x#int qMa qMd@@ @@@"3        @#6!@A@@б&indentг #int qMo qMr@@ @@@"@@г(printer0 qMv qM~@@ @@@" @@@@"@@"% qMh @@7.@@" @@"+ qMZ@@@ qMO@@ Q@@@@2,custom_break s s@б$fitsЦВ@г &string t t@@ @@@"3        @Sj'@A@@@г ۠#int t t@@ @@@"@@@г ޠ&string t t@@ @@@" @@@@1@@@"@%@@@"@@@@"@@"28@@!a 2t 3t@8>@@б&breaksА!a@P@@@"@D@@@"@:@@@"@@"Q Nt Ot@@г:(printer0 Wt Xt@@ @@@"`@@(%@@"@@"e bt @@}J@@" @@"k ht@@@ ks@@ R@@@@r-force_newline vu wu@гb(printer0 u u@@ @@@"3        @@A@@@ u @@ S@@ @@*if_newline v v@г(printer0 v v @@ @@@"3        @2@A@@@ v @@ T@@ @@%flush x x@г(printer0 x x#@@ @@@"3        @2@A@@@ x @@ U@@ @@*force_stop y$* y$4@г(printer0 y$6 y$>@@ @@@"3        @2@A@@@ y$& @@ V@@ @@)open_tbox {@F {@O@гڠ(printer0 {@Q {@Y@@ @@@"3        @2@A@@@ {@B @@ W@@ @@'set_tab |Z` |Zg@г(printer0 |Zi |Zq@@ @@@"3        @2@A@@@ |Z\ @@ 7X@@ @@#tab *}rx +}r{@г(printer0 3}r} 4}r@@ @@@"3 5 4 4 5 5 5 5 5@2@A@@@ =}rt @@ UY@@ @@)tab_break H~ I~@б%widthг (#int U~ V~@@ @@@"3 W V V W W W W W@#6!@A@@б&offsetг ;#int h~ i~@@ @@@"@@гX(printer0 u~ v~@@ @@@" @@@@"@@"% ~ @@7.@@" @@"+ ~@@@ ~@@ Z@@@@2*close_tbox  @г(printer0  @@ @@@"3        @I`@A@@@  @@ [@@ @@(open_tag  @г^'printer  @г $stag  @@ @@@"3        @)<'@A@@@ @@@" @@@ @@ \@@@@ )close_tag  @гˠ(printer0   @@ @@@"3        @$A@A@@@  @@ ]@@ @@$list  @б#sepг(printer0   (@@ @@@"3        @#6!@A@@б@г'printer/6@А!a@"I@"',(.@@@ @@@"@@гؠ'printer5B6I@г $list?=@A@А!a$6F:G<@@@*@@@"= @@@@@@"B @@@-@@" @@"G0!@@X S@@@"@@"@@"Qa,@@ @d/@@|^@@1@@X$iteroJPpJT@б#sepг_(printer0|V_}Vg@@ @@@"3~}}~~~~~@s!@A@@б$iterб@б@А!a@"I@"VrVt@@гB$unitVxV|@@ @@@""@@@@@"@@"' @@б@А!b@"I@"2VV@@гa$unitVV@@ @@@"A@@@@@"@@"F @@@(@@" @@"KVq@@б@гz'printerVV@А!aN\VV@@@T@@@"c @@г'printer@А!bDq@@@J@@@"x @@@@@" @@"}!@@{;@@" @@"Vk@@@@@"@@"@@"VZ"@@ @JL%@@)_@@'@@%array@б#sepг (printer0)*@@ @@@"3+**+++++@!@A@@б@гݠ'printer:;@А!a@#I@"FG@@@ @@@"@@г'printerTU@гڠ%array^_@А!a$6ef@@@*@@@"= @@@@@@"B @@@-@@" @@"G0!@@XR@@@"@@" @@"P+@@ @.@@`@@0@@W#seq@б#sepг }(printer0@@ @@@#3@r!@A@@б@г N'printer@А!a@'I@#@@@ @@@#@@г h'printer#@г=#Seq!t@ @@А!a-?@@@3@@@'F@@@(@@@'K %@@@6@@' @@'P9*@@a[@@@'@@' @@'Y4@@ @7@@a@@9@@`&option%+%1@б$noneг (printer0%9%A@@ @@@'3@{!@A@@б@г Ƞ'printer%%H&%O@А!a@'I@'1%E2%G@@@ @@@'@@г ⠐'printer?%]@%d@г&optionI%VJ%\@А!a$6P%SQ%U@@@*@@@'= @@@@@@'B @@@-@@' @@'G0!@@X R@@@'@@' @@'Pj%3+@@ @m%'.@@b@@0@@W&resultxekyeq@б"okг ('printereye@А!a@'I@'3@x'@Aevex@@@ @@@' @@б%errorг H'printeree@А!e@'I@' ee@@@ @@@''@@г b'printeree@г6&resultee@А!aD?ee@@А!e+Fee@@@Q2@@@'Ne@@@( @@@'T%@@K6@@' @@'Ye+@@qZ@@' @@'_es1@@@eg4@@ c@@6@@f&either@б$leftг 'printer  @А!a@)I@'3@'@A@@@ @@@' @@б%rightг Π'printer+,@А!b@)I@' 78@@@ @@@''@@г 蠐'printerEF@г&Either!tST@ WX@@А!aMH_`@@А!b4Ofg@@@ Z;@@@(Wn@@@1 @@@(].@@T?@@( @@(by4@@zc@@) @@)h:@@@=@@d@@?@@o: {1 Alignment functions } @@@@@@3@@A,align_prefix@б@г$list@В@г S!t@@ @@@)(@@@г#int@@ @@@)7@@@@@ @@)> @@@1 @@@) C/@@гS$list @г !t @@ @@@) [@@@@@@) ` @@@&@@) @@)e"@@@@ Align the right side of one ["@{...@}"] tag box by inserting spaces at the beginning of boxes. Those function do nothing if the tag box appears after a break hint.  !# @@@@@@@$e@@,@@@@@@@-align_prefix2"#"@б@В@г ˠ!t1%2&@@ @@@)332233333@<@A@@@г#intB)C,@@ @@@)@@@@@ @@) @@б@В@г !t\2]3@@ @@@)+@@@г>#intk6l9@@ @@@):@@@@@ @@)A @@В@г !t>?@@ @@@)R@@@г ,!tBC@@ @@@)a@@@@@ @@)h @@@2@@) @@)m1@@@a@@) @@)s$@@@@@f@@@@z@A@rlA@>8A@ V PA@ - A@  A@ e @@@*@@@@@@@@n@@@Aг #doc @@3@NH;@@@A#@@@*&@*@@@@@@@@A@@@@3@ @A@A+)formatterK !@@;@@A@@@@@$@@@@<o@@@A@@@3#""#####@82@A@A+'printerL23@А!a@**398899999@#;@@*)@A@A@@*L@@@*M@*(G@B@@@QR@@@@jp@@AUV@@@; @AA@E@@@*+@@*0@/M@*,@@*.@@@*-@@*/@@*1n@@@@@@@@@@Aб@г)formatterwx@@=@@б@А!aC@@г$unit7@@!M8@@(N 9@@1O:@@<@@3@O@A=<@)formatter@б@г#ref @гꠐ#doc @@ @@@*T3@t[@A@@@ @@@*V @@г)formatter@@ @@@*W@@@@@*X@@*Y @@@ @̐ K [formatter rdoc] creates a {!formatter} that updates the [rdoc] reference m@@@@@@@q@@@퐠@@@@@@8A+.format_printerM@А!a@*\3@Ml4;@@*[@A@A@@*@@@*@*ZG@B@@@@ 7 Translate a {!Format_doc} printer to a {!Format} one. ooo@@@@@@@@@7r@@A"#@@f@;.@AA@&Format)formatter@@@*]@@*b@@N@*^@@*`@@@*_@@*a@@*cn@@@@@/,@@@@Aб@гHI@LM@@@$T@@б@А!aZVW@@г $unit^N@@'dO@@.e P@@:fQ@@SarQP@PP@@@P@P@@3jiijjjjj@q@A_^@&compatwx@б@гP'printer@А!a@*N@*3@k@A@@@ @@@* @@г.format_printer@А!a@@@"@@@* @@@@@* @@*#!@@@@@s@@@@)'compat1@б@б@А"p1@*N@*3@@[@A!@@г'printer(/@А!a@*N@*%'@@@ @@@*@@@(@@* @@*#!@@б@А"p1.)58@@г.format_printer?M@А!a'9<>@@@-@@@*@ @@@J@@* @@*E@@@+@@* @@*JN@@@@@3t@@@@R'compat2&OS'OZ@б@б@А"p1@*N@*310011111@i|@A7O]8O`@@б@А"p2@*N@*DOdEOg@@г'printerMOnNOu@А!a@*N@*$YOkZOm@@@ @@@*+@@@&@@* @@*0!@@@:@@* @@*53@@б@А"p1@;pO{qO~@@б@А"p29CxOyO@@г.format_printerOO@А!a4SOO@@@:@@@*Z @@@U@@* @@*_@@@i@@* @@*d)@@@8@@* @@*iO\O@@@OO@@u@@@@q2deprecated_printer151G@б@б@г(&Format)formatter1J1P@ 1Q1Z@@@@@@*3@*@A @@гv$unit1^1b@@ @@@*@@@@@*@@* @@б@гƠ)formatter1g1p@@ @@@*#@@г$unit1t1x@@ @@@*0@@@@@*@@*5 @@@*@@* @@*:1I@@@11@ If necessary, embbed a {!Format} printer inside a formatting instruction stream. This breaks every guarantees provided by {!Format_doc}. 0@@@@@@@,v@@#@'@@@@@@Z*deprecated*y}+y@б@гD.format_printer5y6y@А!a@*N@*3=<<=====@y>@ACyDy@@@ @@@* @@г'printerQyRy@А!aXyYy@@@"@@@* @@@@@* @@*#!@@@fyy@@~w@@@@)+deprecated1 qr@б@б@А"p1@*N@*3|{{|||||@@[@A@@г.format_printer@А!a@*N@*@@@ @@@*@@@(@@* @@*#!@@б@А"p1.)@@г'printer@А!a'9@@@-@@@*@ @@@J@@* @@*E@@@+@@* @@*J@@@@@x@@@@R㐠 {2 Format string interpreters }@@@@@@3@dw@A'fprintf! @б@гנ)formatter#,@@ @@@*@@б@гs&formatEK@А!a@*N@*/13@@г)formatter5>@@ @@@*?@@гΠ$unit*?+C@@ @@@*M@@@1' @@@*T701@@А!a/Y<O=Q@@@@@*6@@*` @@@N@@* @@*eQ @@@J@@by@@@@k(kfprintf"URVVR^@б@б@гB)formatterb`cc`l@@ @@@*3dccddddd@!@A@@А!a@*N@* s`pt`r@@@@@* @@*@@б@гc)formatter`w`@@ @@@*!@@б@г'format4@А!b@+N@*6@@г)formatter@@ @@@*F@@гZ$unit@@ @@@*T@@А!aSY@@@8.\@@@*c9@@А!b7h@@@@@*>@@*o @@@V@@* @@*tY @@@k@@* @@*y`b@@@RR@@z@@@@(asprintf#@б@гg'format4@А!a@+N@+3@%@A @@г)formatter@@ @@@+@@гĠ$unit !@@ @@@+ @@г&string./@@ @@@+.@@@A7$ @@@+ 6<B@@А!a@;AB@@@@@+ G@@+ B @@@J @@b{@@ @@H)kasprintf$UV@б@б@г)&stringbc@@ @@@+3dccddddd@c~!@A@@А!a@+ N@+ st@@@@@+ @@+@@б@г'format4'.@А!b@+"N@+'@@гy)formatter@@ @@@+7@@гK$unit!@@ @@@+E@@А!aDJ#%@@@8.M@@@+T 9@@А!b7Y24@@@@@+>@@+` @@@W@@+ @@+e @@@@@|@@@@l'dprintf%7;7B@б@гS'format47n7u@А!a@+2N@+#3@%@A7F7H@@гޠ)formatter7J7S@@ @@@+$@@г$unit 7U 7Y@@ @@@+% @@б@г)formatter7[7d@@ @@@+&0@@г͠$unit)7h*7l@@ @@@+'=@@@@@+(@@+)B @@@UK8+ @@@+.J<7EV@@А!aTOA7yB7{@@@@@+/[@@+0V @@@J77 @@b}@@ @@\(kdprintf&U|V|@б@б@б@гD)formatterde@@ @@@+33feefffff@y#@A@@г$unitst@@ @@@+4@@@@@+5@@+6 @@А!a@+GN@+7@@@@@+8 @@+9$@@б@г'format4@А!b@+IN@+::@@г)formatter@@ @@@+;J@@г`$unit@@ @@@+<X@@А!aE]@@@8.N@@@+Ag9@@А!b7l@@@@@+B>@@+Cs @@@X@@+D @@+Ex @@@||@@~@@@@*doc_printf'(@б@гh'format4EL@А!a@+VN@+J3@%@A + -@@г)formatter/8@@ @@@+K@@гŠ$unit!:">@@ @@@+L @@гn#doc/@0C@@ @@@+M.@@@A7$ @@@+R6=*B@@А!a@;BPCR@@@@@+SG@@+TB @@@K @K > {!doc_printf} and {!kdoc_printf} creates a document directly XY@@@@@@@q@@@[l@@@@@@a+kdoc_printf(oSWpSb@б@б@г#doc|Se}Sh@@ @@@+W3~}}~~~~~@|:@A@@А!r@+jN@+X SlSn@@@@@+Y @@+Z@@б@г 'format4SS@А!a@+hN@+['StSv@@г)formatterSxS@@ @@@+\7@@гe$unitSS@@ @@@+]E@@А!rDJSS@@@8.M@@@+bTSs9@@А!a7YSS@@@@@+c>@@+d` @@@W@@+e @@+feSd @@@SS@@@@@@l? {2 Compatibility with {!Doc} }@@@@@@3@~@A+doc_printer) @б@г᠐'printer@А!a@+sN@+k  @@@ @@@+m'@@г'printer#Doc12@ 56@@А!a#>=>@@@)@@@+oE@@@'@@+p @@+qJ*@@@K@@c@@@@P&pp_doc*VW@г-'printer_`@г#docij@@ @@@+t3kjjkkkkk@ql'@A@@@ @@@+v @@@x@@@@@@  % {2 Source compatibility with Format}   3@@@@@@3@<@A6 {3 String printers } 555P@@@@@@/pp_print_string+RVRe@г~'printerRnRu@г&stringRgRm@@ @@@+w3@@@@@@+y8 @@@RR@@@@@@>2pp_print_substring,vzv@б#posг#intvv@@ @@@+z3@YC!@A@@б#lenгŠ#intvv@@ @@@+{@@г͠'printervv@гР&string v v@@ @@@+|*@@@@@@+~/ @@-$@@+ @@+4v@@F=@@+ @@+:v @@@"vv#@@:@@%@@A-pp_print_text--.@г 'printer67@г&string@A@@ @@@+3BAABBBBB@by'@A@@@ @@@+ @@@O@@g@@@@ .pp_print_bytes.Z[@г 1'printercd@г.%bytesmn@@ @@@+3onnooooo@.K'@A@@@ @@@+ @@@|@@@@@@ +pp_print_as/@б@г r)formatter @@ @@@+3@&C@A@@б@гv#int@@ @@@+@@б@гy&string#@@ @@@+ @@гc$unit'+@@ @@@+-@@@@@+@@+2 @@@)@@+ @@+7,@@@?@@+ @@+<B@@@@@@@@@B5pp_print_substring_as0,0,E@б#posг#intGMGP@@ @@@+3@]r!@A@@б#lenгԠ#intGXG[@@ @@@+@@б@г )formatterG_Gh@@ @@@+"@@б@г#intGl Go@@ @@@+1@@б@г&string.Gs/Gy@@ @@@+@@@гߠ$unit;G}<G@@ @@@+M@@@@@+@@+R @@@)@@+ @@+W,@@@=@@+ @@+\@@@ZQ@@+ @@+aUGT@@sj@@+ @@+g[GI @@@^,,#@@v@@%@@nts= {3 Primitive type printers }pq@@@@@@3onnooooo@@A-pp_print_char1|}@г S'printer@г\$char@@ @@@+"@@@@@@+' @@@@@@@@@-,pp_print_int2@г ~'printer@г#int@@ @@@+3@NI'@A@@@ @@@+ @@@@@@@@@ .pp_print_float3@г 'printer@г%float@@ @@@+3@.K'@A@@@ @@@+ @@@@@@@@@ -pp_print_bool4 @г ؠ'printer  &@гɠ$bool@@ @@@+3@.K'@A@@@ @@@+ @@@#@@;@@@@ 0pp_print_nothing5.'+/';@г 'printer7'B8'I@г堐$unitA'=B'A@@ @@@+3CBBCCCCC@.K'@A@@@ @@@+ @@@P''@@h@@@@ fe9 {3 Printer combinators }bKKcKi@@@@@@3a``aaaaa@<@A-pp_print_iter6nkook|@б&pp_sepг I'printer{~|~@г)$unit~~@@ @@@+&@@@@@@++ @@б@б@б@А!a@+N@+:~~@@гL$unit~~@@ @@@+I@@@@@+@@+N @@б@А!b@+N@+Y~~@@гk$unit~~@@ @@@+h@@@@@+@@+m @@@(@@+ @@+r~@@б@г 'printer@А!aN@@@T@@@+ @@г Ġ'printer@А!bD@@@J@@@+ @@@@@+ @@+!@@@;@@+ @@+ ~@@@@@+@@+@@+ ~"@@ @ kk%@@ 3@@'@@-pp_print_list7 & '@б&pp_sepг 'printer 3 4@г᠐$unit = >@@ @@@+3 ? > > ? ? ? ? ?@+@A@@@ @@@+ @@б@г !'printer S T @А!a@+N@+ _ `@@@ @@@+#@@г ;'printer m n@г蠐$list w x@А!a$; ~  @@@*@@@+B @@@@@@+G @@@-@@+ @@+L0!@@g8Q@@@+@@+ @@+U +@@ @ .@@ @@0@@\.pp_print_array8 ! /@б&pp_sepг 'printer > E@г a$unit 9 =@@ @@@+3        @+@A@@@ @@@+ @@б@г 'printer L S@А!a@+N@+ I K@@@ @@@+#@@г 'printer ` g@г s%array Z _@А!a$; W Y@@@*@@@+B @@@@@@+G @@@-@@+ @@+L0!@@gQ@@@+@@+ @@+U!1+@@ @!.@@!3@@0@@\,pp_print_seq9!&hl!'hx@б&pp_sepг 'printer!3h!4h@г ᠐$unit!=h!>h@@ @@@+3!?!>!>!?!?!?!?!?@+@A@@@ @@@+ @@б@г !'printer!Sh!Th@А!a@,N@+!_h!`h@@@ @@@+#@@г ;'printer!mh!nh@г#Seq!t!{h!|h@ !h!h@@А!a-D!h!h@@@3@@@+K@@@(@@@+P %@@@6@@+ @@+U9*@@pAZ@@@,@@, @@,^!hz4@@ @!hh7@@!@@9@@e/pp_print_option:!!@б$noneг 'printer!!@г!j$unit!!@@ @@@,3!!!!!!!!@+@A@@@ @@@, @@б@г 'printer!!@А!a@,N@,!!@@@ @@@, #@@г Ġ'printer!!@г!T&option""@А!a$;""@@@*@@@, B @@@@@@,G @@@-@@, @@,L0!@@gQ@@@,@@, @@,U"!+@@ @"$.@@"<@@0@@\/pp_print_result;"/ "0 @б"okг 'printer"< "= @А!a@,'N@,3"D"C"C"D"D"D"D"D@}'@A"J "K @@@ @@@, @@б%errorг*'printer"\ ,"] 3@А!e@,)N@, "h )"i +@@@ @@@,'@@гD'printer"v F"w M@г &result" ?" E@А!aD?" 8" :@@А!e+F" ;" =@@@Q2@@@,N" 7@@@( @@@,!T%@@K6@@," @@,#Y" #+@@qZ@@,$ @@,%_" 1@@@"4@@"@@6@@f/pp_print_either<" N R" N a@б$leftг'printer" c m" c t@А!a@,:N@,*3""""""""@'@A" c j" c l@@@ @@@,, @@б%rightг'printer" c " c @А!b@,#  #  @гb'printer# !# !@г#B$unit#  #  @@ @@@,@3########@WR'@A@@@ @@@,B @@@#  @@#@@@@ +pp_open_box?#! ! #! !@г'printer#! !#! !%@г##int#! !#! !@@ @@@,C3########@.K'@A@@@ @@@,E @@@#! ! @@#@@@@ ,pp_close_box@#!&!*#!&!6@г'printer#!&!=#!&!D@г#$unit#!&!8#!&!<@@ @@@,F3########@.K'@A@@@ @@@,H @@@$!&!&@@$@@@@ $$1 {3 Break hints} $!F!F$!F!\@@@@@@3$$$$$$$$@<@A.pp_print_spaceA$%!^!b$&!^!p@г'printer$.!^!w$/!^!~@г#ܠ$unit$8!^!r$9!^!v@@ @@@,I"@@@@@@,K' @@@$E!^!^@@$]@@@@-,pp_print_cutB$P!!$Q!!@г''printer$Y!!$Z!!@г$$unit$c!!$d!!@@ @@@,L3$e$d$d$e$e$e$e$e@NI'@A@@@ @@@,N @@@$r!!@@$@@@@ .pp_print_breakC$}!!$~!!@б@гh)formatter$!!$!!@@ @@@,O3$$$$$$$$@&C@A@@б@г$l#int$!!$!!@@ @@@,P@@б@г${#int$!!$!!@@ @@@,Q @@г$Y$unit$!!$!!@@ @@@,R-@@@@@,S@@,T2 @@@)@@,U @@,V7,@@@?@@,W @@,X<B@@@$!!@@$@@@@B5pp_print_custom_breakD$!!$!!@б@г )formatter$!!$!!@@ @@@,Y3$$$$$$$$@[p@A@@б$fitsЦВ@г$ &string$!"$!"@@ @@@,[@@@г$ݠ#int% !" % !"@@ @@@,\(@@@г$ࠐ&string%!"%!"@@ @@@,]7@@@@/@@@,`@%@@@,a@@@@,b@@,_I6@@!c%4!"%5!"@O<@@б&breaksА!c@N@@@,d@D@@@,e@:@@@,f@@,ch%P!")%Q!"+@@г$$unit%Y!"/%Z!"3@@ @@@,gw@@(%@@,h@@,i|%d!"" @@{J@@,j @@,k%j!!@@@@@,l @@,m@@@%r!!@@%@@@@%%1 {3 Tabulations }%"5"5%"5"K@@@@@@3%%%%%%%%@@A,pp_open_tboxE%"M"Q%"M"]@гg'printer%"M"d%"M"k@г%G$unit%"M"_%"M"c@@ @@@,p"@@@@@@,r' @@@%"M"M@@%@@@@--pp_close_tboxF%"l"p%"l"}@г'printer%"l"%"l"@г%r$unit%"l"%"l"@@ @@@,s3%%%%%%%%@NI'@A@@@ @@@,u @@@%"l"l@@%@@@@ *pp_set_tabG%""%""@г'printer%""%""@г%$unit%""%""@@ @@@,v3%%%%%%%%@.K'@A@@@ @@@,x @@@& ""@@&"@@@@ ,pp_print_tabH& ""& ""@г점'printer& ""& ""@г%̠$unit&( ""&) ""@@ @@@,y3&*&)&)&*&*&*&*&*@.K'@A@@@ @@@,{ @@@&7 ""@@&O@@@@ /pp_print_tbreakI&B ""&C ""@б@г-)formatter&M ""&N ""@@ @@@,|3&O&N&N&O&O&O&O&O@&C@A@@б@г&1#int&^ ""&_ ""@@ @@@,}@@б@г&@#int&m ""&n ""@@ @@@,~ @@г&$unit&z ""&{ ""@@ @@@,-@@@@@,@@,2 @@@)@@, @@,7,@@@?@@, @@,<B@@@& ""@@&@@@@B&&; {3 Newlines and flushing }& ""& "#@@@@@@3&&&&&&&&@Ti@A3pp_print_if_newlineJ&# #$&# #7@г'printer&# #>&# #E@г&f$unit&# #9&# #=@@ @@@,"@@@@@@,' @@@&# # @@&@@@@-0pp_force_newlineK&#F#J&#F#Z@г'printer&#F#a&#F#h@г&$unit&#F#\&#F#`@@ @@@,3&&&&&&&&@NI'@A@@@ @@@, @@@&#F#F@@'@@@@ .pp_print_flushL'#i#m'#i#{@гޠ'printer'#i#'#i#@г&$unit'#i#}'#i#@@ @@@,3''''''''@.K'@A@@@ @@@, @@@')#i#i@@'A@@@@ 0pp_print_newlineM'4##'5##@г 'printer'=##'>##@г&렐$unit'G##'H##@@ @@@,3'I'H'H'I'I'I'I'I@.K'@A@@@ @@@, @@@'V##@@'n@@@@ 'l'k ! {1 Compiler specific functions }'h##'i##@@@@@@3'g'f'f'g'g'g'g'g@<@A''~0 {2 Separators }'{##'|##@@@@@@%commaN'##'##@г\'printer'##'#$@г'<$unit'##'##@@ @@@,3@@@@@@,8 @@@'##@@'@@@@>)semicolonO'$$ '$$@г'printer'$$'$$ @г'g$unit'$$'$$@@ @@@,3''''''''@_I'@A@@@ @@@, @@@'$$@@'@@@@ ''琠5 {2 Compiler output} '$"$"'$"$<@@@@@@3''''''''@<@A.pp_two_columnsP'$>$B'$>$P@б#sepг'Ġ&string'$S$Z'$S$`@@ @@@,@@б)max_linesг'᠐#int($S$o($S$r@@ @@@,-@@б@г)formatter($v$x($v$@@ @@@,<@@б@г'$list(,$v$(-$v$@В@г(&string(:$v$(;$v$@@ @@@,Y@@@г(&string(I$v$(J$v$@@ @@@,h@@@@@ @@,o @@@1 @@@,t([$v$/@@г($unit(c$v$(d$v$@@ @@@,@@@@@,@@, @@@S@@, @@,V@@pj@@@,@@, @@,(|$S$d@@&@@@,@@,@@,($S$U#@@ @($>$>&@&  [pp_two_columns ?sep ?max_lines ppf l] prints the lines in [l] as two columns separated by [sep] ("|" by default). [max_lines] can be used to indicate a maximum number of lines to print -- an ellipsis gets inserted at the middle if the input has too many lines. Example: {v pp_two_columns ~max_lines:3 Format.std_formatter [ "abc", "hello"; "def", "zzz"; "a" , "bllbl"; "bb" , "dddddd"; ] v} prints {v abc | hello ... bb | dddddd v} ($$(4&&@@@@@@@(@@6@&(@@@@@@@&@ &@@A@A@A@YA@ @A@C@@@@Z@S@z@s@~@w@@{ @  @ e @  @  ^@ 3 @  @  @  b@ [ @  @ j H@ A @  @  @  @ @U@N@P@I@N@G@|@uQ@J&@@@@<@5@~\@U1@*@@@iG@@@@@y@rN@4@@3))))))))@;6@A@ H************************************************************************)&A@@)'A@L@ H ),BMM)-BM@ H OCaml )2C)3C@ H )8D)9D3@ H Florian Angeletti, projet Cambium, Inria Paris )>E44)?E4@ H )DF)EF@ H Copyright 2024 Institut National de Recherche en Informatique et )JG)KG@ H en Automatique. )PH)QHg@ H )VIhh)WIh@ H All rights reserved. This file is distributed under the terms of )\J)]J@ H the GNU Lesser General Public License version 2.1, with the )bK)cKN@ H special exception on linking described in the file LICENSE. )hLOO)iLO@ H )nM)oM@ H************************************************************************)tN)uN5@ ;* Composable document for the {!Format} formatting engine. )z * This module introduces a pure and immutable document type which represents a sequence of formatting instructions to be printed by a formatting engine at later point. At the same time, it also provides format string interpreter which produces this document type from format string and their associated printers. The module is designed to be source compatible with code defining format printers: replacing `Format` by `Format_doc` in your code will convert `Format` printers to `Format_doc` printers. 'ܠ 8* Definitions and immutable API for composing documents ] ** {2 Type definitions and core functions }'3* Format box types 'w 6* Base formatting instruction recognized by {!Format} % * Escape hatch: a {!Format} printer used to provide backward-compatibility for user-defined printer (from the [#install_printer] toplevel directive for instance). %Ġ9* Immutable document type$1* Empty document "Š `* [format ppf doc] sends the format instruction of [doc] to the Format's formatter [doc]. "` 5* Fold over a document as a sequence of instructions !ޠ T* {!msg} and {!kmsg} produce a document from a format string and its argument ! X* {!printf} and {!kprintf} produce a printer from a format string and its argument h* The functions below mirror {!Format} printers, without the [pp_print_] prefix naming convention ⠠;* {1 Alignment functions }  * Align the right side of one ["@{...@}"] tag box by inserting spaces at the beginning of boxes. Those function do nothing if the tag box appears after a break hint. 8* {1 Compatibility API} s 3* The functions and types below provides source compatibility with format printers and conversion function from {!Format_doc} printers to {!Format} printers. The reverse direction is implemented using an escape hatch in the formatting instruction and should only be used to preserve backward compatibility.  L* [formatter rdoc] creates a {!formatter} that updates the [rdoc] reference נ 8* Translate a {!Format_doc} printer to a {!Format} one.  * If necessary, embbed a {!Format} printer inside a formatting instruction stream. This breaks every guarantees provided by {!Format_doc}.  !* {2 Format string interpreters }٠ ?* {!doc_printf} and {!kdoc_printf} creates a document directly d * {2 Compatibility with {!Doc} } à &* {2 Source compatibility with Format} 87* {3 String printers }  (>* {3 Primitive type printers } X:* {3 Printer combinators } i5* {3 Boxes and tags }2* {3 Break hints} 2* {3 Tabulations }P<* {3 Newlines and flushing }4 "* {1 Compiler specific functions }r1* {2 Separators }b6* {2 Compiler output}  * [pp_two_columns ?sep ?max_lines ppf l] prints the lines in [l] as two columns separated by [sep] ("|" by default). [max_lines] can be used to indicate a maximum number of lines to print -- an ellipsis gets inserted at the middle if the input has too many lines. Example: {v pp_two_columns ~max_lines:3 Format.std_formatter [ "abc", "hello"; "def", "zzz"; "a" , "bllbl"; "bb" , "dddddd"; ] v} prints {v abc | hello ... bb | dddddd v} M@-./boot/ocamlc)-nostdlib"-I&./boot*-use-prims2runtime/primitives"-g0-strict-sequence*-principal(-absname"-w8+a-4-9-40-41-42-44-45-48+-warn-error"+a*-bin-annot/-strict-formats"-I%utils"-I%utils"-I'parsing"-I&typing"-I(bytecomp"-I,file_formats"-I&lambda"-I*middle_end"-I2middle_end/closure"-I2middle_end/flambda"-I=middle_end/flambda/base_types"-I'asmcomp"-I&driver"-I(toplevel"-I%tools"-I'runtime"-I1otherlibs/dynlink"-I-otherlibs/str"-I4otherlibs/systhreads"-I.otherlibs/unix"-I8otherlibs/runtime_events"-c** S/home/teraram/ci/builds/workspace/parallel-build/flambda/true/label/ocaml-manycores >10/.-,+*)('&%$#"! @@0!&t$/&3*8*7*7*8*8*8*8*8@*6@@8CamlinternalFormatBasics0|.e1R$|o*Y0uy@GmWUࠠ&Stdlib0t0VoS%{<F:.Stdlib__Buffer0,I[?z.Stdlib__Domain0'Ϳo\0m.K.Stdlib__Either0HD ?|>.Stdlib__Format00FClW+Stdlib__Seq0?72#[O-Stdlib__Uchar0=H^V9>@0uy@GmWUAk@ S @L@@  @ҐU@ @((f@@@&ܓ%c@֐Xϐ@@@e@'Q%@@@@  '%@@%%/@@ | @ĐF@'m&@ J s'&0'&D@  +ΐ@2[""{'&%@@(  'A'&@@@@(&@   !H'?&@@ ʐ @@@@@@ ݐ (t(@((@!"=@@%%H@' 9 b@@@f@'e%@ :   @@@ U@{@8 @@@)"ؐ#*@@)(@1X$$@հ$4$\@  ް$ג$()A@@'&T@@i5@/ư#$9@@@@@@M`@  ɰ('B@#g#@@(&@@(?&@ 1 Z'&@@@(j'@\@i'&9@s'&%@))@d(b&@@)N)@ !ڐ"R('G@@Xr@Y@а@i@Js8@@('P@('+@;@@xdu@@@ @@  @߰ F o@@@@/I@@ǐ@ U ]@@@)w)J@!!/!5!^'&Y@@aŰ(m'@') @@P@@