TSTP Solution File: SWV287-2 by SnakeForV-SAT---1.0
View Problem
- Process Solution
%------------------------------------------------------------------------------
% File : SnakeForV-SAT---1.0
% Problem : SWV287-2 : TPTP v8.1.0. Released v3.2.0.
% Transfm : none
% Format : tptp:raw
% Command : vampire --input_syntax tptp --proof tptp --output_axiom_names on --mode portfolio --schedule snake_tptp_sat --cores 0 -t %d %s
% Computer : n015.cluster.edu
% Model : x86_64 x86_64
% CPU : Intel(R) Xeon(R) CPU E5-2620 v4 2.10GHz
% Memory : 8042.1875MB
% OS : Linux 3.10.0-693.el7.x86_64
% CPULimit : 300s
% WCLimit : 300s
% DateTime : Wed Aug 31 18:56:10 EDT 2022
% Result : Unsatisfiable 0.21s 0.53s
% Output : Refutation 0.21s
% Verified :
% SZS Type : Refutation
% Derivation depth : 11
% Number of leaves : 9
% Syntax : Number of formulae : 28 ( 17 unt; 0 def)
% Number of atoms : 62 ( 0 equ)
% Maximal formula atoms : 6 ( 2 avg)
% Number of connectives : 66 ( 32 ~; 34 |; 0 &)
% ( 0 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 13 ( 4 avg)
% Maximal term depth : 9 ( 2 avg)
% Number of predicates : 2 ( 1 usr; 1 prp; 0-3 aty)
% Number of functors : 25 ( 25 usr; 13 con; 0-5 aty)
% Number of variables : 32 ( 32 !; 0 ?)
% Comments :
%------------------------------------------------------------------------------
fof(f28,plain,
$false,
inference(subsumption_resolution,[],[f27,f15]) ).
fof(f15,plain,
c_in(v_evs,c_OtwayRees_Ootway,tc_List_Olist(tc_Event_Oevent)),
inference(literal_reordering,[],[f6]) ).
fof(f6,axiom,
c_in(v_evs,c_OtwayRees_Ootway,tc_List_Olist(tc_Event_Oevent)),
file('/export/starexec/sandbox/benchmark/theBenchmark.p',cls_conjecture_5) ).
fof(f27,plain,
~ c_in(v_evs,c_OtwayRees_Ootway,tc_List_Olist(tc_Event_Oevent)),
inference(subsumption_resolution,[],[f26,f11]) ).
fof(f11,plain,
c_in(c_Message_Omsg_OKey(v_K),c_Message_Oanalz(c_Event_Oknows(c_Message_Oagent_OSpy,v_evs)),tc_Message_Omsg),
inference(literal_reordering,[],[f7]) ).
fof(f7,axiom,
c_in(c_Message_Omsg_OKey(v_K),c_Message_Oanalz(c_Event_Oknows(c_Message_Oagent_OSpy,v_evs)),tc_Message_Omsg),
file('/export/starexec/sandbox/benchmark/theBenchmark.p',cls_conjecture_6) ).
fof(f26,plain,
( ~ c_in(c_Message_Omsg_OKey(v_K),c_Message_Oanalz(c_Event_Oknows(c_Message_Oagent_OSpy,v_evs)),tc_Message_Omsg)
| ~ c_in(v_evs,c_OtwayRees_Ootway,tc_List_Olist(tc_Event_Oevent)) ),
inference(subsumption_resolution,[],[f25,f10]) ).
fof(f10,plain,
! [X0] : ~ c_in(c_Event_Oevent_ONotes(c_Message_Oagent_OSpy,c_Message_Omsg_OMPair(v_NA,c_Message_Omsg_OMPair(X0,c_Message_Omsg_OKey(v_K)))),c_List_Oset(v_evs,tc_Event_Oevent),tc_Event_Oevent),
inference(literal_reordering,[],[f3]) ).
fof(f3,axiom,
! [X0] : ~ c_in(c_Event_Oevent_ONotes(c_Message_Oagent_OSpy,c_Message_Omsg_OMPair(v_NA,c_Message_Omsg_OMPair(X0,c_Message_Omsg_OKey(v_K)))),c_List_Oset(v_evs,tc_Event_Oevent),tc_Event_Oevent),
file('/export/starexec/sandbox/benchmark/theBenchmark.p',cls_conjecture_2) ).
fof(f25,plain,
( c_in(c_Event_Oevent_ONotes(c_Message_Oagent_OSpy,c_Message_Omsg_OMPair(v_NA,c_Message_Omsg_OMPair(v_sko__u8o(v_A,v_B,v_K,v_NA,v_evs),c_Message_Omsg_OKey(v_K)))),c_List_Oset(v_evs,tc_Event_Oevent),tc_Event_Oevent)
| ~ c_in(v_evs,c_OtwayRees_Ootway,tc_List_Olist(tc_Event_Oevent))
| ~ c_in(c_Message_Omsg_OKey(v_K),c_Message_Oanalz(c_Event_Oknows(c_Message_Oagent_OSpy,v_evs)),tc_Message_Omsg) ),
inference(subsumption_resolution,[],[f24,f14]) ).
fof(f14,plain,
~ c_in(v_A,c_Event_Obad,tc_Message_Oagent),
inference(literal_reordering,[],[f4]) ).
fof(f4,axiom,
~ c_in(v_A,c_Event_Obad,tc_Message_Oagent),
file('/export/starexec/sandbox/benchmark/theBenchmark.p',cls_conjecture_3) ).
fof(f24,plain,
( c_in(v_A,c_Event_Obad,tc_Message_Oagent)
| ~ c_in(c_Message_Omsg_OKey(v_K),c_Message_Oanalz(c_Event_Oknows(c_Message_Oagent_OSpy,v_evs)),tc_Message_Omsg)
| c_in(c_Event_Oevent_ONotes(c_Message_Oagent_OSpy,c_Message_Omsg_OMPair(v_NA,c_Message_Omsg_OMPair(v_sko__u8o(v_A,v_B,v_K,v_NA,v_evs),c_Message_Omsg_OKey(v_K)))),c_List_Oset(v_evs,tc_Event_Oevent),tc_Event_Oevent)
| ~ c_in(v_evs,c_OtwayRees_Ootway,tc_List_Olist(tc_Event_Oevent)) ),
inference(subsumption_resolution,[],[f23,f18]) ).
fof(f18,plain,
~ c_in(v_B,c_Event_Obad,tc_Message_Oagent),
inference(literal_reordering,[],[f5]) ).
fof(f5,axiom,
~ c_in(v_B,c_Event_Obad,tc_Message_Oagent),
file('/export/starexec/sandbox/benchmark/theBenchmark.p',cls_conjecture_4) ).
fof(f23,plain,
( c_in(v_B,c_Event_Obad,tc_Message_Oagent)
| c_in(v_A,c_Event_Obad,tc_Message_Oagent)
| ~ c_in(v_evs,c_OtwayRees_Ootway,tc_List_Olist(tc_Event_Oevent))
| ~ c_in(c_Message_Omsg_OKey(v_K),c_Message_Oanalz(c_Event_Oknows(c_Message_Oagent_OSpy,v_evs)),tc_Message_Omsg)
| c_in(c_Event_Oevent_ONotes(c_Message_Oagent_OSpy,c_Message_Omsg_OMPair(v_NA,c_Message_Omsg_OMPair(v_sko__u8o(v_A,v_B,v_K,v_NA,v_evs),c_Message_Omsg_OKey(v_K)))),c_List_Oset(v_evs,tc_Event_Oevent),tc_Event_Oevent) ),
inference(resolution,[],[f22,f13]) ).
fof(f13,plain,
! [X3,X1,X6,X7,X4,X5] :
( ~ c_in(c_Event_Oevent_OSays(c_Message_Oagent_OServer,X6,c_Message_Omsg_OMPair(X4,c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(X3),c_Message_Omsg_OMPair(X4,c_Message_Omsg_OKey(X5))),c_Message_Omsg_OCrypt(c_Public_OshrK(X6),c_Message_Omsg_OMPair(X7,c_Message_Omsg_OKey(X5)))))),c_List_Oset(X1,tc_Event_Oevent),tc_Event_Oevent)
| c_in(X6,c_Event_Obad,tc_Message_Oagent)
| ~ c_in(c_Message_Omsg_OKey(X5),c_Message_Oanalz(c_Event_Oknows(c_Message_Oagent_OSpy,X1)),tc_Message_Omsg)
| ~ c_in(X1,c_OtwayRees_Ootway,tc_List_Olist(tc_Event_Oevent))
| c_in(X3,c_Event_Obad,tc_Message_Oagent)
| c_in(c_Event_Oevent_ONotes(c_Message_Oagent_OSpy,c_Message_Omsg_OMPair(X4,c_Message_Omsg_OMPair(X7,c_Message_Omsg_OKey(X5)))),c_List_Oset(X1,tc_Event_Oevent),tc_Event_Oevent) ),
inference(literal_reordering,[],[f9]) ).
fof(f9,axiom,
! [X3,X1,X6,X7,X4,X5] :
( ~ c_in(X1,c_OtwayRees_Ootway,tc_List_Olist(tc_Event_Oevent))
| ~ c_in(c_Message_Omsg_OKey(X5),c_Message_Oanalz(c_Event_Oknows(c_Message_Oagent_OSpy,X1)),tc_Message_Omsg)
| c_in(X6,c_Event_Obad,tc_Message_Oagent)
| c_in(X3,c_Event_Obad,tc_Message_Oagent)
| ~ c_in(c_Event_Oevent_OSays(c_Message_Oagent_OServer,X6,c_Message_Omsg_OMPair(X4,c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(X3),c_Message_Omsg_OMPair(X4,c_Message_Omsg_OKey(X5))),c_Message_Omsg_OCrypt(c_Public_OshrK(X6),c_Message_Omsg_OMPair(X7,c_Message_Omsg_OKey(X5)))))),c_List_Oset(X1,tc_Event_Oevent),tc_Event_Oevent)
| c_in(c_Event_Oevent_ONotes(c_Message_Oagent_OSpy,c_Message_Omsg_OMPair(X4,c_Message_Omsg_OMPair(X7,c_Message_Omsg_OKey(X5)))),c_List_Oset(X1,tc_Event_Oevent),tc_Event_Oevent) ),
file('/export/starexec/sandbox/benchmark/theBenchmark.p',cls_OtwayRees_Osecrecy__lemma__dest_0) ).
fof(f22,plain,
c_in(c_Event_Oevent_OSays(c_Message_Oagent_OServer,v_B,c_Message_Omsg_OMPair(v_NA,c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(v_A),c_Message_Omsg_OMPair(v_NA,c_Message_Omsg_OKey(v_K))),c_Message_Omsg_OCrypt(c_Public_OshrK(v_B),c_Message_Omsg_OMPair(v_sko__u8o(v_A,v_B,v_K,v_NA,v_evs),c_Message_Omsg_OKey(v_K)))))),c_List_Oset(v_evs,tc_Event_Oevent),tc_Event_Oevent),
inference(resolution,[],[f21,f12]) ).
fof(f12,plain,
c_in(c_Event_Oevent_OSays(v_B_H,v_A,c_Message_Omsg_OMPair(v_NA,c_Message_Omsg_OCrypt(c_Public_OshrK(v_A),c_Message_Omsg_OMPair(v_NA,c_Message_Omsg_OKey(v_K))))),c_List_Oset(v_evs,tc_Event_Oevent),tc_Event_Oevent),
inference(literal_reordering,[],[f2]) ).
fof(f2,axiom,
c_in(c_Event_Oevent_OSays(v_B_H,v_A,c_Message_Omsg_OMPair(v_NA,c_Message_Omsg_OCrypt(c_Public_OshrK(v_A),c_Message_Omsg_OMPair(v_NA,c_Message_Omsg_OKey(v_K))))),c_List_Oset(v_evs,tc_Event_Oevent),tc_Event_Oevent),
file('/export/starexec/sandbox/benchmark/theBenchmark.p',cls_conjecture_1) ).
fof(f21,plain,
! [X0,X1] :
( ~ c_in(c_Event_Oevent_OSays(X0,v_A,c_Message_Omsg_OMPair(v_NA,c_Message_Omsg_OCrypt(c_Public_OshrK(v_A),c_Message_Omsg_OMPair(v_NA,c_Message_Omsg_OKey(X1))))),c_List_Oset(v_evs,tc_Event_Oevent),tc_Event_Oevent)
| c_in(c_Event_Oevent_OSays(c_Message_Oagent_OServer,v_B,c_Message_Omsg_OMPair(v_NA,c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(v_A),c_Message_Omsg_OMPair(v_NA,c_Message_Omsg_OKey(X1))),c_Message_Omsg_OCrypt(c_Public_OshrK(v_B),c_Message_Omsg_OMPair(v_sko__u8o(v_A,v_B,X1,v_NA,v_evs),c_Message_Omsg_OKey(X1)))))),c_List_Oset(v_evs,tc_Event_Oevent),tc_Event_Oevent) ),
inference(subsumption_resolution,[],[f20,f15]) ).
fof(f20,plain,
! [X0,X1] :
( c_in(c_Event_Oevent_OSays(c_Message_Oagent_OServer,v_B,c_Message_Omsg_OMPair(v_NA,c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(v_A),c_Message_Omsg_OMPair(v_NA,c_Message_Omsg_OKey(X1))),c_Message_Omsg_OCrypt(c_Public_OshrK(v_B),c_Message_Omsg_OMPair(v_sko__u8o(v_A,v_B,X1,v_NA,v_evs),c_Message_Omsg_OKey(X1)))))),c_List_Oset(v_evs,tc_Event_Oevent),tc_Event_Oevent)
| ~ c_in(v_evs,c_OtwayRees_Ootway,tc_List_Olist(tc_Event_Oevent))
| ~ c_in(c_Event_Oevent_OSays(X0,v_A,c_Message_Omsg_OMPair(v_NA,c_Message_Omsg_OCrypt(c_Public_OshrK(v_A),c_Message_Omsg_OMPair(v_NA,c_Message_Omsg_OKey(X1))))),c_List_Oset(v_evs,tc_Event_Oevent),tc_Event_Oevent) ),
inference(subsumption_resolution,[],[f19,f14]) ).
fof(f19,plain,
! [X0,X1] :
( c_in(v_A,c_Event_Obad,tc_Message_Oagent)
| ~ c_in(v_evs,c_OtwayRees_Ootway,tc_List_Olist(tc_Event_Oevent))
| ~ c_in(c_Event_Oevent_OSays(X0,v_A,c_Message_Omsg_OMPair(v_NA,c_Message_Omsg_OCrypt(c_Public_OshrK(v_A),c_Message_Omsg_OMPair(v_NA,c_Message_Omsg_OKey(X1))))),c_List_Oset(v_evs,tc_Event_Oevent),tc_Event_Oevent)
| c_in(c_Event_Oevent_OSays(c_Message_Oagent_OServer,v_B,c_Message_Omsg_OMPair(v_NA,c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(v_A),c_Message_Omsg_OMPair(v_NA,c_Message_Omsg_OKey(X1))),c_Message_Omsg_OCrypt(c_Public_OshrK(v_B),c_Message_Omsg_OMPair(v_sko__u8o(v_A,v_B,X1,v_NA,v_evs),c_Message_Omsg_OKey(X1)))))),c_List_Oset(v_evs,tc_Event_Oevent),tc_Event_Oevent) ),
inference(resolution,[],[f16,f17]) ).
fof(f17,plain,
c_in(c_Event_Oevent_OSays(v_A,v_B,c_Message_Omsg_OMPair(v_NA,c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(v_A),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(v_B),c_Message_Omsg_OCrypt(c_Public_OshrK(v_A),c_Message_Omsg_OMPair(v_NA,c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(v_A),c_Message_Omsg_OAgent(v_B)))))))),c_List_Oset(v_evs,tc_Event_Oevent),tc_Event_Oevent),
inference(literal_reordering,[],[f1]) ).
fof(f1,axiom,
c_in(c_Event_Oevent_OSays(v_A,v_B,c_Message_Omsg_OMPair(v_NA,c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(v_A),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(v_B),c_Message_Omsg_OCrypt(c_Public_OshrK(v_A),c_Message_Omsg_OMPair(v_NA,c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(v_A),c_Message_Omsg_OAgent(v_B)))))))),c_List_Oset(v_evs,tc_Event_Oevent),tc_Event_Oevent),
file('/export/starexec/sandbox/benchmark/theBenchmark.p',cls_conjecture_0) ).
fof(f16,plain,
! [X2,X3,X1,X6,X4,X5] :
( ~ c_in(c_Event_Oevent_OSays(X3,X6,c_Message_Omsg_OMPair(X4,c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(X3),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(X6),c_Message_Omsg_OCrypt(c_Public_OshrK(X3),c_Message_Omsg_OMPair(X4,c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(X3),c_Message_Omsg_OAgent(X6)))))))),c_List_Oset(X1,tc_Event_Oevent),tc_Event_Oevent)
| ~ c_in(c_Event_Oevent_OSays(X2,X3,c_Message_Omsg_OMPair(X4,c_Message_Omsg_OCrypt(c_Public_OshrK(X3),c_Message_Omsg_OMPair(X4,c_Message_Omsg_OKey(X5))))),c_List_Oset(X1,tc_Event_Oevent),tc_Event_Oevent)
| c_in(X3,c_Event_Obad,tc_Message_Oagent)
| ~ c_in(X1,c_OtwayRees_Ootway,tc_List_Olist(tc_Event_Oevent))
| c_in(c_Event_Oevent_OSays(c_Message_Oagent_OServer,X6,c_Message_Omsg_OMPair(X4,c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(X3),c_Message_Omsg_OMPair(X4,c_Message_Omsg_OKey(X5))),c_Message_Omsg_OCrypt(c_Public_OshrK(X6),c_Message_Omsg_OMPair(v_sko__u8o(X3,X6,X5,X4,X1),c_Message_Omsg_OKey(X5)))))),c_List_Oset(X1,tc_Event_Oevent),tc_Event_Oevent) ),
inference(literal_reordering,[],[f8]) ).
fof(f8,axiom,
! [X2,X3,X1,X6,X4,X5] :
( c_in(X3,c_Event_Obad,tc_Message_Oagent)
| ~ c_in(c_Event_Oevent_OSays(X3,X6,c_Message_Omsg_OMPair(X4,c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(X3),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(X6),c_Message_Omsg_OCrypt(c_Public_OshrK(X3),c_Message_Omsg_OMPair(X4,c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(X3),c_Message_Omsg_OAgent(X6)))))))),c_List_Oset(X1,tc_Event_Oevent),tc_Event_Oevent)
| ~ c_in(X1,c_OtwayRees_Ootway,tc_List_Olist(tc_Event_Oevent))
| c_in(c_Event_Oevent_OSays(c_Message_Oagent_OServer,X6,c_Message_Omsg_OMPair(X4,c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(X3),c_Message_Omsg_OMPair(X4,c_Message_Omsg_OKey(X5))),c_Message_Omsg_OCrypt(c_Public_OshrK(X6),c_Message_Omsg_OMPair(v_sko__u8o(X3,X6,X5,X4,X1),c_Message_Omsg_OKey(X5)))))),c_List_Oset(X1,tc_Event_Oevent),tc_Event_Oevent)
| ~ c_in(c_Event_Oevent_OSays(X2,X3,c_Message_Omsg_OMPair(X4,c_Message_Omsg_OCrypt(c_Public_OshrK(X3),c_Message_Omsg_OMPair(X4,c_Message_Omsg_OKey(X5))))),c_List_Oset(X1,tc_Event_Oevent),tc_Event_Oevent) ),
file('/export/starexec/sandbox/benchmark/theBenchmark.p',cls_OtwayRees_OA__trusts__OR4__dest_0) ).
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.08/0.14 % Problem : SWV287-2 : TPTP v8.1.0. Released v3.2.0.
% 0.08/0.15 % Command : vampire --input_syntax tptp --proof tptp --output_axiom_names on --mode portfolio --schedule snake_tptp_sat --cores 0 -t %d %s
% 0.15/0.36 % Computer : n015.cluster.edu
% 0.15/0.36 % Model : x86_64 x86_64
% 0.15/0.36 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.15/0.36 % Memory : 8042.1875MB
% 0.15/0.36 % OS : Linux 3.10.0-693.el7.x86_64
% 0.15/0.36 % CPULimit : 300
% 0.15/0.36 % WCLimit : 300
% 0.15/0.36 % DateTime : Tue Aug 30 19:24:21 EDT 2022
% 0.15/0.36 % CPUTime :
% 0.21/0.52 % (13736)ins+10_1:1_awrs=decay:awrsf=30:bsr=unit_only:foolp=on:igrr=8/457:igs=10:igwr=on:nwc=1.5:sp=weighted_frequency:to=lpo:uhcvi=on:i=68:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/68Mi)
% 0.21/0.52 % (13728)fmb+10_1:1_fmbsr=2.0:nm=4:skr=on:i=51:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/51Mi)
% 0.21/0.52 % (13736)First to succeed.
% 0.21/0.53 % (13732)ott+2_1:1_fsr=off:gsp=on:i=50:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/50Mi)
% 0.21/0.53 % (13727)dis+34_1:32_abs=on:add=off:bsr=on:gsp=on:sp=weighted_frequency:i=48:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/48Mi)
% 0.21/0.53 % (13731)ott-1_1:6_av=off:cond=on:fsr=off:nwc=3.0:i=51:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/51Mi)
% 0.21/0.53 % (13731)Also succeeded, but the first one will report.
% 0.21/0.53 % (13733)ott+10_1:32_bd=off:fsr=off:newcnf=on:tgt=full:i=100:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/100Mi)
% 0.21/0.53 % (13736)Refutation found. Thanks to Tanya!
% 0.21/0.53 % SZS status Unsatisfiable for theBenchmark
% 0.21/0.53 % SZS output start Proof for theBenchmark
% See solution above
% 0.21/0.53 % (13736)------------------------------
% 0.21/0.53 % (13736)Version: Vampire 4.7 (commit 807e37dd9 on 2022-08-23 09:55:27 +0200)
% 0.21/0.53 % (13736)Linked with Z3 4.8.13.0 f03d756e086f81f2596157241e0decfb1c982299 z3-4.8.4-5390-gf03d756e0
% 0.21/0.53 % (13736)Termination reason: Refutation
% 0.21/0.53
% 0.21/0.53 % (13736)Memory used [KB]: 5756
% 0.21/0.53 % (13736)Time elapsed: 0.013 s
% 0.21/0.53 % (13736)Instructions burned: 3 (million)
% 0.21/0.53 % (13736)------------------------------
% 0.21/0.53 % (13736)------------------------------
% 0.21/0.53 % (13719)Success in time 0.161 s
%------------------------------------------------------------------------------