#!/usr/local/bin/himmlrun ;HimML compiled module. * spi_lex spi_h process_h spi_tab_h |base&&&&&(((*$@)$@'@@true@false&&&( @( @ @ @@$@)&+@spi_tab_h-1%spi_value@*9@process_h-4%spi_declaration@*0@process_h-1%spi_term @@*2@process_h-3%spi_process@*7@process_h-2%spi_fact @( @ @ @@@G@&( @j@/@-@% ->@A/@@%string&.@/@+&&,@string @ @ @( @m@/@-@&./@spinoneo@ /@-@5/@0&.1@st @q@/@-@>@O/@2&@3/@@%int&@3@3B@3&.4@sp @t@ /@-@K/@;@%listL@5&.6@stlv@/@-@f/@7&.8@sf @ @( @{@ /@-@&?.@@scase@ /@-@ @( @ @@/@C@% -m>@AB@funs@/@C@A@&&@ constructors@/@C@A@H@Y/@;@A&?&@ processes.D@spi @@ /@-@U/@;?.E@spl@/@-@|/@@%bool&.F@sb+@@Gy@/@-@@AHIJ@SPI_PROC9@@G @( @w@/@-@_@A@K&LM@SPI_APPL@/@-@ALN@SPI_VAR0 @@@G @( @ @ @l@a/@-@@5@AW@5Z@>?Q@O&P@SPI_DECRYPT_ASYM @n@/@-@@5S@A?QR@SPI_INp@d/@-@SQT@SPI_NEW @ @r@/@-@UQV@SPI_PARs@/@-@@5WQX@SPI_IFu@/@-@@5@A@YZQ[@ SPI_DESTRUCT @ @z@/@-@@5\Q]@SPI_OUT @}@/@-@@A\Q^@SPI_LET@/@-@_Q`@SPI_CALL @ @@ab@SPI_DECRYPT_SYM@Oc@SPI_ZERO@de@SPI_BANG2@@G @( @k@h/@-@@5L@f&g@SPI_EQx@hi@SPI_DIFF7&&((( @j @ @ @ @ @ @@3@kw_ifk @@3@kw_slash@3@kw_then @@3@ kw_private @l@3@kw_in @ @ @ @@3@kw_equal@/@-@/@@ %hlex_data&B@ id_or_varm @n@3@kw_let @ @@3@kw_datao @p@3@kw_par @ @ @ @@3@kw_close_parenq @ @@3@kw_ofr@3@kw_proc @@3@kw_out @s@3@kw_any @ @ @@3@kw_close_curlyt @u@3@kw_fun @ @@3@kw_eventv @w@3@VAR @ @ @ @ @@3@kw_elsex @ @@3@kw_eofy@3@ kw_open_paren @@3@kw_new @z@3@kw_open_bracket @ @ @@3@kw_case{ @ @@/@-@A@|&@is_fun}@3@ kw_open_curly @ @@3@kw_bang~ @ @@/@@%ref.@ spi_value@3@kw_comma @ @ @ @@3@ kw_implies @@3@ kw_period @ @@3@kw_close_bracket @@3@ kw_different @ @ @@3@ identifier @@@spilex @ @@/@@%exn&@SpiUnterminatedCommentEvt@3@kw_zero @ @@3@ kw_semicolon @@3@kw_and( @( @ @ @( @ @@/@-@/@@ %hyacc_data@3.@/@@%option.&@spiparse@/@-@ @@/@-@put@@'a&@/@-@5&@print_spi_term(( @@/@-@@&@mangle @j @ @ @ @kl @ @mn @op @ @ @qrs @ @tu @vw @ @ @ @xyz @ @{} @~ @ @ @ @ @ @ @ @( @ @ @@@G@ spi_program@@Gf@spi_fact @@@G5@spi_term@@ spi_pattern @ @@@GO@ spi_process@@G @@@G<@spi_declaration@@G>@located_process(&&((( @@@1@@, @ @ @ @ @ @@@2@@@9@g @@@:@ @@=@ @@@?@ @@@3@ P@@6@ @ @ @ @@@4@@@@H@@@@/ @@@7@R@@A@ @ @@@B@@@0@1 @@@Q@T@@K@ @ @ @ @@@C@@@E@4 @ @@@R@@@O@V@@D@ @@@L@ @@@J@X@@M@ @ @ @@@>@@@S@6 @@@P@ [@@N@! @ @@@I@"@@T@#8 @@@H@$M@@;@% @ @ @ @ @@@<@&@@5@'i @ @@@8@(@@/@)J@@V@* @@@'@+ @@@x@,]@@@- @ @ @@@^@.@@~@/: @ @@@G@@@z@0^@@[@1 @ @@@}@2@@@3= @ @@@`@G@@o@4`@@@5 @ @ @ @@@m@6@@y@7@ @@@|@8b@@g@9 @ @@@\@:@@{@;D @@@h@<c@@d@= @ @ @@@l@> @@@@@@e@?E @@@@@e @@@c@A@@f@B @ @@@n@C@@k@DF @@@a@EN@@i@F&& @ @ @ @ @@ @( @ @@@( @@ @ @ @@@(@ @ @@@ @@@( @ @ @ @( @( @ @@J@( @@@@ @ @ @( @ @@@@ @@@ @ @@ @@@@@ @@ @ @ @@ @@ @ @( @@@@@(& @( @ @ @@$@'@ ,4@/:6ED1=8F&&+@J9@$@'@MN&&0 @@$@'@ cb][TVP^RXe`&&2@$@'@ig&&7&@spi_lex (& @@' @, @ @ @ @@'g@'P @ @@'/@'R @@'1@'T @ @ @@'4@'V@'X @ @@'6@'[ @@'8@'M @ @ @ @@'i@'J@'] @ @@':@'^ @@'=@'` @ @ @@'@@'b @@'D@'c @ @@'E @@'e@' @@'F@'N&$$@&$$$$@&$@&$@&$$@&$@&$$@ &$@ &$@&$@&$@&$$$@&$@&$$$@&$@&$@&$$2u( @@@ @ @ @ @& 3d O a h  @ spi_lex.ml' !/@-@-@/@@&&$@$@'@@NONE@SOME&&& "/@-@@/@B& +/@-@@/@-@$@'b@@'c&&@%/@-@$&&' /@-@$-@@@@.@@.@'@/@@@0@1@2@3@4@/@5@6@/@7@8@9@:@;@<@<@<@<@<@<@<@<@<@<@<@<@<@=@>@?@.@F@@@ @@@@5@A@B@8@8@@<@<@<@<@<@<@<@<@C@D@<@<@E@<@<@<@<@.@F@G@F@H@<@<@<@<@I@J@K@L@<@<@<@<@M@N@O@<@<@P@Q@R@S@<@<@T@&/@;B@@@@@@@@@@ @.@@ @ @@@@@@@@@@@@@@@@@@@ @F@@@@@@G@1@2@9@@:@@=@?@3@3@3@3@3@3@3@3@3@3@@6@4@@@7@@@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@B@@0@@Q@@K@C@E@R@O@D@C@L@J@C@C@M@C@>@S@P@C@N@I@T@H@;@<@C@C@C@5@8@/@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@U@@@&@@@@@@ @@@.@@@@F@@@@@F@@@F@F@F@F@F@F@F@F@F@F@F@F@F@F@F@F@F@F@FU@@@@@u@@t@6@{@W@~@8@V@W@@r@W@W@W@@m@@l@W@@g@t@f@@W@W@I@Y@W@@]@_@@^@B@X@N@C@@X@Y@E@X@Z@K@_@R@W@W@W@@[@\@W@q@`@]@W@W@@@^@@@_@`@a@a@b@M@`@@@c@d@@e@C@f@`@@g@W@h@@i@j@I@k@l@@@@@m@n@g@\@@@@o@h@@@@@V@[@@W@k@`@\@p@J@X@_&@@q@@r@a@r@q@q@q@q@q@q@q@q@q@q@q@q@q@q@u@b@q@q@v@c@s@d@s@s@s@s@s@s@s@s@s@s@s@s@q@q@q@w@e@t@q@q@q@q@q@q@u@u@v@s@s@s@s@s@s@s@s@s@s@s@s@s@s@s@s@s@w@t@q@t@s@s@s@s@s@s@s@s@s@s@s@s@s@s@s@s@s@s@s@s@s@s@s@s@s@@q@q@q@q@q@q&@@1@2@9@:@1@=@?@1@3@6@4@@@7@A@B@1@0@Q@K@C@E@R@O@D@L@J@R@M@>@S@P@N@R@I@T@R@R@R@H@;@<@/@/@/@/@x@y@\@l@@P@z@{@@Q@[@|@a@i@x@e@/@/@}@z@q@q@[@a@i@5@5@5@5@~@]@~@@@@n@n@@]@n@k@k@k@k@@\@@[@@Z@@Y@@Y@@V@@U@@T@@S@_@@O@X@b@@L@Z@p@j@@`@x@'@f@c@@d@h@g@m@@o@^@@x@'@V@q@8@8@G@q@q@q@q@q@q@q@q@q@q@q@q@q@q@q@q@q@q@q@q@q@q@q@q@q@q@q@q@q@q@q@q@q@q@q@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@2@2@9@9@C@L@M@P@@C@M@@C@L@8@8@[@P@/@/@v@[@k@k@[@i@i@r@r@r@r@u@@u@s@@s@w@w@@w@t@t@t@t@Y@@_@@@Z@p@j@@f@c@e@d@h@g@|@y@m@@o@x@'@T@I@N@S@>@J@D@O@E@B@A@@@4@=@G@F@.@q/@; /@-@- /@-@ /@-@ %/@;@&VWq/@@ %hlex_tablesB( tspi_valuespiparsespilexmangleprint_spi_termis_funkw_andSPI_VARsbkw_semicolonkw_zeroSpiUnterminatedCommentEvtSPI_BANGsplidentifierkw_differentSPI_ZEROspikw_close_bracketkw_periodSPI_DECRYPT_SYMscasekw_implieskw_commaSPI_CALLsdlkw_bangkw_open_curlySPI_LETsdkw_casekw_open_bracketSPI_OUTkw_newkw_open_parenSPI_PROCkw_eofSPI_DIFFkw_elseVARSPI_APPLsfkw_eventkw_funSPI_DESTRUCTstlkw_close_curlykw_anySPI_IFkw_outkw_procSPI_PARkw_ofspkw_close_parenkw_parSPI_NEWstkw_datakw_letSPI_INspinonekw_equalkw_inSPI_DECRYPT_ASYMkw_privatekw_thenkw_slashSPI_EQkw_ifstringspi_valueid_or_varreturncontinueyyterminatehlex_thenINITIALCOMMENTyy_end_of_bufferaction_0yy_acceptyy_ecyy_metayy_baseyy_defyy_nxtyy_chkyy_NUL_transaction_1action_2action_3action_4action_5action_45action_6action_7action_8action_9action_10action_11action_12action_13action_14action_15action_16action_17action_18action_19action_20action_21action_22action_23action_24action_25action_26action_27action_28action_29action_30action_31action_32action_33action_34action_35action_36action_37action_38action_39action_40action_41action_42actionyytablesspilex~!"GsFsEsDsss~r > BsFAsE@sD?sC>sBCsA=s@:s=9s<8s;7s:6s95s84s73s62s51s40s3/s2.s1-s0,s/+s.*s-)s,(s+'s*&s)%s($s'#s&"s%!s$ s#s"s!s sssssssssssssss s s s s  s s s s sss'w(sG~)sH3sI,sJt.sKt0sL2sM3sN4sO~5sP7sQ9sR:sS;sTsWsX~@sY~AsZ~Cs[~Ds\~Es]~Fs^~Hs_~Is`~Jsa~Ksb~Lsc~Msd~Nse~Osf~Psg~Qsh~Ssi~Tsj~Usk~Vsl~Wsm~Xsn~Yso~Zsp~[sq~\sr~]ss~^st~_su~`sv~asw~bsx~csy~dsz~es{~fs|~gs}~hs~~is~~js~~ks~~ls~tms~PYZ[\]_`abcdefghijklmnopqrstuvwxyz{|}~~~~~~PK^s~~~pOQRSTUVWXqr36s~~~6s~t3F E D   ! 0DF 7 E > D F C I B V A ^ @ x? ~> ~ = ~ < ~; ~(: ~, 9 ~= 8 ~G7 ~W6 ~] 5 ~h 4 ~q3 ~z2 ~~ 1 ~ 0 ~/ ~. ~ - ~ , ~+ ~ * ~ ) ~( ~ ' ~& ~ % ~ $ ~# "  !                  !      "     # $   )  / @  K  S  \ c  i% &  G p  H z* I + #J - $K / %>L 1 '.M  (N  )O  +P 6 ,!Q 8 :R 8 ZS 8 cT 8 sU 8 ~V 8 ~W 8 ~1X  ? ~3&Y 6 ~8/Z B ~;8[ (6 ~?A\ 16 ~BJ] :B ~ES^ CG ~I\_ M/ ~Me` V/ ~Pna _/ ~Swb h/ ~Vc q/ ~Yd {/ ~\e / ~_f / ~bg / ~eh R ~hi / ~kj / ~nk / ~ql / ~tm / ~wn / ~zo / ~}p / ~q / ~r / ~s / ~t / ~"u %/ ~+v // ~4w 9/ ~=x C/ ~Fy M/ ~Oz W/ ~X{ a/ ~a| k/ ~j} u/ ~s~ / ~|~ R ~~ R ~~ R ~~ B ~~ n ~~ o ~h ~~ s ~~ ~~ * ~ ~&&&& &&&& && &&&*@ *anonymous* &(& 3d O a h  @spi_h.ml @is_funprint_spi_termmanglekw_andSPI_VARsbkw_semicolonkw_zeroSPI_BANGsplidentifierkw_differentSPI_ZEROspikw_close_bracketkw_periodSPI_DECRYPT_SYMscasekw_implieskw_commaSPI_CALLsdlkw_bangkw_open_curlySPI_LETsdkw_casekw_open_bracketSPI_OUTkw_newkw_open_parenSPI_PROCkw_eofSPI_DIFFkw_elseVARSPI_APPLsfkw_eventkw_funSPI_DESTRUCTstlkw_close_curlykw_anySPI_IFkw_outkw_procSPI_PARkw_ofspkw_close_parenkw_parSPI_NEWstkw_datakw_letSPI_INspinonekw_equalkw_inSPI_DECRYPT_ASYMkw_privatekw_thenkw_slashSPI_EQkw_ifstringSpiUnterminatedCommentEvt~!"Csss~r> AsBsAs@*s?/s> s=s< s;-s:s9s8&s7+s6s5s4s7ss s ,s 5s  s @s3s"ss1ss#sC%3   )B A $@ , ? /> <= D < M ; Q: \9 i 8 r 7 v6 ~ 5 ~4 ~#3 ~)2 ~41 ~=0 ~F/ ~J. ~R- ~`, ~h+ ~k* ~s) ~( ~' ~& ~% ~$ ~# ~" ~! ~ ~ ~ ~ ~ ~ ~                         ( / 5!l " lC <$ #tv&&#@, @@* @ALRnyydsX~~6G~w8~6>>V%$3A2          "&%%#@ yyterminateDDT'Xx3  % $&''.@ hlex_then @% DHh;fg~"#X~3$    '  %>&,,! @( @ @ @ @ @@,@yy_end_of_buffer(@,@return( @) @X@,Y@,@,@INITIAL @*@,@continue@,@COMMENT @#@,,@action_0@@L'XJ3  , +& @( @ @ @W @ @@,@yy_ec@,@yy_chk @)Z @@,@yy_meta @ @ @@,, @*@,@yy_def( @ @( @ @@,@ yy_accept@,@yy_nxt# @@,@ yy_NUL_trans @U@,@yy_base@action_1 @DHT.yydXJ3   ~7 ~3& @( @ @ @( @ @( @#@,@action_2DHhCyydX~~N7J3'   ~: ~: ~8& @( @ @ @@,@action_3DHT.yydXJ3   ~> ~;& @( @ @ @ @@,@action_4DHT.yydXJ3   ~A ~?& @( @ @ @ @@,@action_5DHhCyydX~~M7J3'   ~D ~D ~B&  @( @ @ @ @ @@,@ action_45HLmyydX~~7~~~~67A 3?0   ~G ~G ~G( ~G ~H ~E& @( @ @ @T @@,@action_6DH\7yydXI*63$   ~L ~I & @( @ @ @ @@,@action_7DH\7yydXI63$   ~O ~M & @( @ @ @ @ @( @ @ @#@,(@action_8DH\7yydXI-63$   ~R ~P & @( @ @ @ @ @ @@,(@action_9DH\7yydXI:63$   ~U ~S & @( @ @ @ @ @ @( @@,@ action_10DH\7yydXI163$   ~X ~V & @( @ @ @ @ @@,@ action_11DH\7yydXI63$   ~[ ~Y & @( @ @ @ @ @@,@ action_12DH\7yydXI563$   ~^ ~\ & @( @ @ @ @ @@,@ action_13DH\7yydXIC63$   ~a ~_ & @( @ @ @ @ @ @( @@,@ action_14DH\7yydXI963$   ~d ~b & @( @ @ @ @ @ @@,@ action_15HLvQyydXG~~6w8I 63/    ~g ~g ~g' ~e& @( @ @S @ @ @ @ @@,@ action_16DH\7yydXI63$   ~j ~h & @( @ @ @ @ @ @@,@ action_17DH\7yydXI=63$   ~m ~k & @( @ @ @ @ @ @ @0@,((@ action_18DH\7yydXI663$   ~p ~n & @( @ @ @ @ @ @ @7@,((@ action_19DH\7yydXI263$   ~s ~q & @( @ @ @ @ @ @ @>@,(@ action_20DH\7yydXIB63$   ~v ~t & @( @ @ @ @ @ @ @(C @*@,@ action_21DH\7yydXI+63$   ~y ~w & @( @ @ @ @ @ @,@ action_22DH\7yydXI63$   ~| ~z & @( @ @ @ @ @@,@ action_23DH\7yydXI63$   ~ ~} & @( @ @ @ @ @ @( @( @@,(@ action_24DH\7yydXI 63$   ~ ~ & @( @ @ @ @ @ @* @( @@,@ action_25DH\7yydXI&63$   ~ ~ & @( @ @ @ @ @ @1@,   @ action_26DH\7yydXI 63$   ~ ~ &  @( @ @ @ @  @" @ 8@, @ action_27DH\7yydXI63$   ~ ~ &   @( @ @ @ @ @' @?@,@ action_28DH\7yydXI63$   ~ ~ & @( @ @ @ @! @+ @D @( @@,@ action_29DH\7yydXI.63$   ~ ~ & @( @ @ @# @& @2 @ J@, @ action_30DH\7yydXI63$   ~ ~ & @( @ @ @% @!, @"9 @O@, #$@ action_31DH\7yydXI"63$   ~ ~ & @( @ @ @%- @&3 @'@ @(@,$)@ action_32DH\7yydXI63$   ~ ~ & @( @ @ @/ @5 @B @ @@,)*+,-.@ action_33DH\7yydXI63$   ~ ~ & @( @ @ @/: @= @I @ @ @@,.01234@ action_34DH\7yydXI!63$   ~ ~ & " @( @ @ @< @5E @N @ @ @@,4789:;@ action_35DH\7yydXI 63$   ~ ~ &#% @( @ @ @<F @=K @ @ @ @@,;>?@A@ action_36DH\7yydXIF63$   ~ ~ &&( @( @ @ @H @M @B @ @@,ACDEFG@ action_37DH\7yydXI63$   ~ ~ &$$)+ @( @ @ @HP @ @I @ @@,G JKL@ action_38PZyydyydsXI~X~~6G~w8~6>>V%$$63bS   ~70        #%' ~'( ~(*&$$,. @( @R @[ @ @M @N @ @@,LOPQ@ action_39PZyydyydsXI~X~~6G~w8~6>>V%$$63bS   ~70        #%' ~'( ~(*&$$/1 @( @R\ @S @T @ @U@,QV@ action_40PZyydyydsXI~X~~6G~w8~6>>V%$$63bS   ~70        #%' ~'( ~(*&@27 @( @ @ @W @ @ @X@,VYZ[\]@ action_41@Unrecognized character: @ 'PTyydX~%~6~%~~~66~%~6~%~6J3G8   ~ ~ ~ ~  ~  ~  & ~&(&8:^@ action_429DHZByydX~6 3/    ~ ~ ~ ~ &*}&(@*&&\S(& hdOa@ spi_tab_h.ml            @3@@@@@@@ @ @ @ @ @@@@@@@@@@@@@@@@@@@ @!@"@#@$|:mangleprint_spi_termis_funSPI_CALLSPI_DIFFSPI_NEWSPI_ZEROSPI_VARSPI_IFSPI_OUTSPI_DECRYPT_ASYMSPI_PROCSPI_BANGSPI_DESTRUCTSPI_LETSPI_APPLSPI_INSPI_DECRYPT_SYMSPI_PARSPI_EQstringspscasespinonesdstlsplspistsdlsfsbidentifierVARkw_slashkw_open_parenkw_close_parenkw_open_bracketkw_close_bracketkw_open_curlykw_close_curlykw_commakw_semicolonkw_periodkw_equalkw_differentkw_bangkw_zerokw_newkw_ifkw_ofkw_thenkw_elsekw_inkw_outkw_letkw_casekw_parkw_eventkw_prockw_implieskw_anykw_datakw_funkw_privatekw_andkw_eof~!"sss~r> sssss ss  s s s s  ss ss sstststststst st"st$st&st(st*st,s.s 0s!1s"2s#3s$4s%5s&6s'7s(8s)9s*:s+;s,s/?s0@s1As2Bs3Cs4Ds5Es6Fs7Gs8Hs9Is:Js;Ks<Ls=Ms>Ns?Os@PsAQsBR3~   )  & /  7  @  H  O  W h q  z ~  ~ ~ ~! ~1 ~9~G  ~G ~@ ~G ~J ~P ~X ~[! ~_# ~c% ~g' ~j) ~n+ ~q- ~ ~t/ ~! ~/  ~" ~/ ~# ~/ ~$ ~/ ~% ~/ ~& ~/ ~' ~/ ~( ~/ ~) ~/ ~* ~/ ~+ ~/ , / - / . / / / 0 / 1 / 2 / !3 / "4 / #5 / $6 / %7 / &8 / '9 / (: / ); / *< / + =  / ,> / -? / .%@ #/ /-A ./ 05B 5/ 1=?& @ @@,@g@,@f @ @ @( @)(*# @@ *DHfGyydX~6~63/    '  '! '(  '. &,@3@j!@Z"@b3@p@X3@+@_@Y@@@@@@@@@@@@@@]"@q"@r"@u"@v"@s"@w"@t"@"@@h@@i"@@j"@@k"@"@"@@n"@@o"@@p"@@q" @"@@s"@"@" @@v"$@@w")@@x".@@y"4@@z";@6"A@@|"G@@}"L@W"Q@@V@@]@@^(@, @ @3@&,(@*"( @ process_h.ml h O a d   Ph,SPI_APPLSPI_VARSPI_DIFFSPI_EQSPI_ZEROSPI_DECRYPT_SYMSPI_OUTSPI_DESTRUCTSPI_NEWSPI_PARSPI_DECRYPT_ASYMSPI_LETSPI_INSPI_IFSPI_BANGSPI_CALLtststst s st ststststs ts ts ts ts tstst s!3    +   (  !  *  : B O W _  p x ~ ~ ~ 4>~ 7M~ ~ &\<<Fw3  &\<<Fw3  &\<<Fw3  &\<<Fw3  &\<<Fw3  &\<<Fw3  &\<<Fw3  &\<<Fw3  &\<<Fw3  &\<<Fw 3  &\<<Fw 3  &\<<Fw 3  &&&@ @ &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,G,(@*&&N88B x3&N88B x3&\<<Fx3  +&\<<Fx3  +&\<<Fx3  (&\<<Fx3  (&\<<Fx3  (&\<<Fx3  (&\<<Fx3  (&\<<Fx3  (&\<<Fx3  (&\<<Fx3  (&\<<Fx3  (&\<<Fx 3  (&\<<Fx 3  (&p88@X~3   4>&@yyd}F,(@*&&&9 @ @&},(@**}~@  @&&)@G}-  @ @|)@>)@%,čč- @- @ @@)@)@,,)@ )@1@s)@