TSTP Solution File: HWV036-1 by SPASS---3.9

View Problem - Process Solution

%------------------------------------------------------------------------------
% File     : SPASS---3.9
% Problem  : HWV036-1 : TPTP v8.1.0. Released v2.5.0.
% Transfm  : none
% Format   : tptp
% Command  : run_spass %d %s

% Computer : n032.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  : 600s
% DateTime : Sat Jul 16 19:15:01 EDT 2022

% Result   : Satisfiable 0.14s 0.36s
% Output   : Saturation 0.14s
% Verified : 
% SZS Type : ERROR: Analysing output (Could not find formula named 264)

% Comments : 
%------------------------------------------------------------------------------
cnf(266,plain,
    ( ~ type(u,or__dfg)
    | ~ mode(u,ok)
    | ~ value(out(n1,u),n1)
    | ~ connection(in(n2,u),v)
    | value(v,n1) ),
    inference(res,[status(thm),theory(equality)],[265,1]),
    [iquote('2:Res:265.3,1.0')] ).

cnf(285,plain,
    ( ~ type(u,or__dfg)
    | ~ mode(u,ok)
    | ~ value(out(n1,u),n1)
    | equal_value(n1,n1) ),
    inference(obv,[status(thm),theory(equality)],[282]),
    [iquote('2:Obv:282.2')] ).

cnf(267,plain,
    ( ~ type(u,or__dfg)
    | ~ mode(u,ok)
    | ~ value(out(n1,u),n1)
    | ~ connection(v,in(n2,u))
    | value(v,n1) ),
    inference(res,[status(thm),theory(equality)],[265,2]),
    [iquote('2:Res:265.3,2.0')] ).

cnf(268,plain,
    ( ~ type(u,or__dfg)
    | ~ mode(u,ok)
    | ~ value(out(n1,u),n1)
    | ~ value(in(n2,u),v)
    | equal_value(v,n1) ),
    inference(res,[status(thm),theory(equality)],[265,3]),
    [iquote('2:Res:265.3,3.0')] ).

cnf(235,plain,
    ( ~ type(u,and__dfg)
    | ~ mode(u,ok)
    | ~ value(out(n1,u),n0)
    | ~ connection(in(n2,u),v)
    | value(v,n0) ),
    inference(res,[status(thm),theory(equality)],[234,1]),
    [iquote('1:Res:234.3,1.0')] ).

cnf(236,plain,
    ( ~ type(u,and__dfg)
    | ~ mode(u,ok)
    | ~ value(out(n1,u),n0)
    | ~ connection(v,in(n2,u))
    | value(v,n0) ),
    inference(res,[status(thm),theory(equality)],[234,2]),
    [iquote('1:Res:234.3,2.0')] ).

cnf(265,plain,
    ( ~ type(u,or__dfg)
    | ~ mode(u,ok)
    | ~ value(out(n1,u),n1)
    | value(in(n2,u),n1) ),
    inference(spt,[],[264]),
    [iquote('2:Spt:264.0,264.1,264.2,264.3')] ).

cnf(253,plain,
    ( ~ type(u,and__dfg)
    | ~ mode(u,ok)
    | ~ value(out(n1,u),n0)
    | equal_value(n0,n0) ),
    inference(obv,[status(thm),theory(equality)],[247]),
    [iquote('1:Obv:247.2')] ).

cnf(237,plain,
    ( ~ type(u,and__dfg)
    | ~ mode(u,ok)
    | ~ value(out(n1,u),n0)
    | ~ value(in(n2,u),v)
    | equal_value(v,n0) ),
    inference(res,[status(thm),theory(equality)],[234,3]),
    [iquote('1:Res:234.3,3.0')] ).

cnf(234,plain,
    ( ~ type(u,and__dfg)
    | ~ mode(u,ok)
    | ~ value(out(n1,u),n0)
    | value(in(n2,u),n0) ),
    inference(spt,[],[233]),
    [iquote('1:Spt:233.0,233.1,233.2,233.3')] ).

cnf(167,plain,
    ( ~ type(u,not__dfg)
    | ~ value(out(n1,u),n0)
    | ~ type(u,and__dfg)
    | ~ mode(u,ok)
    | ~ value(in(n2,u),n1) ),
    inference(mrr,[status(thm)],[166,157]),
    [iquote('0:MRR:166.5,157.3')] ).

cnf(138,plain,
    ( ~ type(u,not__dfg)
    | ~ value(out(n1,u),n1)
    | ~ type(u,or__dfg)
    | ~ mode(u,ok)
    | ~ value(in(n2,u),n0) ),
    inference(mrr,[status(thm)],[137,125]),
    [iquote('0:MRR:137.5,125.3')] ).

cnf(79,plain,
    ( ~ type(u,and__dfg)
    | ~ mode(u,ok)
    | ~ value(out(n1,u),n1)
    | ~ connection(in(n1,u),v)
    | value(v,n1) ),
    inference(res,[status(thm),theory(equality)],[11,1]),
    [iquote('0:Res:11.3,1.0')] ).

cnf(80,plain,
    ( ~ type(u,and__dfg)
    | ~ mode(u,ok)
    | ~ value(out(n1,u),n1)
    | ~ connection(v,in(n1,u))
    | value(v,n1) ),
    inference(res,[status(thm),theory(equality)],[11,2]),
    [iquote('0:Res:11.3,2.0')] ).

cnf(81,plain,
    ( ~ type(u,and__dfg)
    | ~ mode(u,ok)
    | ~ value(out(n1,u),n1)
    | ~ value(in(n1,u),v)
    | equal_value(v,n1) ),
    inference(res,[status(thm),theory(equality)],[11,3]),
    [iquote('0:Res:11.3,3.0')] ).

cnf(72,plain,
    ( ~ type(u,not__dfg)
    | ~ mode(u,ok)
    | ~ value(out(n1,u),n0)
    | ~ connection(in(n1,u),v)
    | value(v,n1) ),
    inference(res,[status(thm),theory(equality)],[20,1]),
    [iquote('0:Res:20.3,1.0')] ).

cnf(73,plain,
    ( ~ type(u,not__dfg)
    | ~ mode(u,ok)
    | ~ value(out(n1,u),n0)
    | ~ connection(v,in(n1,u))
    | value(v,n1) ),
    inference(res,[status(thm),theory(equality)],[20,2]),
    [iquote('0:Res:20.3,2.0')] ).

cnf(188,plain,
    ( ~ type(u,not__dfg)
    | ~ mode(u,ok)
    | ~ value(out(n1,u),n0)
    | equal_value(n1,n1) ),
    inference(obv,[status(thm),theory(equality)],[187]),
    [iquote('0:Obv:187.2')] ).

cnf(74,plain,
    ( ~ type(u,not__dfg)
    | ~ mode(u,ok)
    | ~ value(out(n1,u),n0)
    | ~ value(in(n1,u),v)
    | equal_value(v,n1) ),
    inference(res,[status(thm),theory(equality)],[20,3]),
    [iquote('0:Res:20.3,3.0')] ).

cnf(69,plain,
    ( ~ type(u,and__dfg)
    | ~ mode(u,ok)
    | ~ value(out(n1,u),n1)
    | ~ connection(in(n2,u),v)
    | value(v,n1) ),
    inference(res,[status(thm),theory(equality)],[12,1]),
    [iquote('0:Res:12.3,1.0')] ).

cnf(70,plain,
    ( ~ type(u,and__dfg)
    | ~ mode(u,ok)
    | ~ value(out(n1,u),n1)
    | ~ connection(v,in(n2,u))
    | value(v,n1) ),
    inference(res,[status(thm),theory(equality)],[12,2]),
    [iquote('0:Res:12.3,2.0')] ).

cnf(178,plain,
    ( ~ type(u,and__dfg)
    | ~ mode(u,ok)
    | ~ value(out(n1,u),n1)
    | equal_value(n1,n1) ),
    inference(obv,[status(thm),theory(equality)],[177]),
    [iquote('0:Obv:177.2')] ).

cnf(71,plain,
    ( ~ type(u,and__dfg)
    | ~ mode(u,ok)
    | ~ value(out(n1,u),n1)
    | ~ value(in(n2,u),v)
    | equal_value(v,n1) ),
    inference(res,[status(thm),theory(equality)],[12,3]),
    [iquote('0:Res:12.3,3.0')] ).

cnf(66,plain,
    ( ~ type(u,not__dfg)
    | ~ mode(u,ok)
    | ~ value(out(n1,u),n1)
    | ~ connection(in(n1,u),v)
    | value(v,n0) ),
    inference(res,[status(thm),theory(equality)],[21,1]),
    [iquote('0:Res:21.3,1.0')] ).

cnf(67,plain,
    ( ~ type(u,not__dfg)
    | ~ mode(u,ok)
    | ~ value(out(n1,u),n1)
    | ~ connection(v,in(n1,u))
    | value(v,n0) ),
    inference(res,[status(thm),theory(equality)],[21,2]),
    [iquote('0:Res:21.3,2.0')] ).

cnf(157,plain,
    ( ~ type(u,and__dfg)
    | ~ type(u,not__dfg)
    | ~ mode(u,ok)
    | ~ value(out(n1,u),n1) ),
    inference(mrr,[status(thm)],[156,5]),
    [iquote('0:MRR:156.4,5.0')] ).

cnf(160,plain,
    ( ~ type(u,not__dfg)
    | ~ mode(u,ok)
    | ~ value(out(n1,u),n1)
    | equal_value(n0,n0) ),
    inference(obv,[status(thm),theory(equality)],[150]),
    [iquote('0:Obv:150.2')] ).

cnf(9,axiom,
    ( ~ type(u,and__dfg)
    | ~ mode(u,ok)
    | ~ value(in(n1,u),n1)
    | ~ value(in(n2,u),n1)
    | value(out(n1,u),n1) ),
    file('HWV036-1.p',unknown),
    [] ).

cnf(68,plain,
    ( ~ type(u,not__dfg)
    | ~ mode(u,ok)
    | ~ value(out(n1,u),n1)
    | ~ value(in(n1,u),v)
    | equal_value(v,n0) ),
    inference(res,[status(thm),theory(equality)],[21,3]),
    [iquote('0:Res:21.3,3.0')] ).

cnf(63,plain,
    ( ~ type(u,or__dfg)
    | ~ mode(u,ok)
    | ~ value(out(n1,u),n0)
    | ~ connection(in(n1,u),v)
    | value(v,n0) ),
    inference(res,[status(thm),theory(equality)],[16,1]),
    [iquote('0:Res:16.3,1.0')] ).

cnf(64,plain,
    ( ~ type(u,or__dfg)
    | ~ mode(u,ok)
    | ~ value(out(n1,u),n0)
    | ~ connection(v,in(n1,u))
    | value(v,n0) ),
    inference(res,[status(thm),theory(equality)],[16,2]),
    [iquote('0:Res:16.3,2.0')] ).

cnf(14,axiom,
    ( ~ type(u,or__dfg)
    | ~ mode(u,ok)
    | ~ value(in(n2,u),n0)
    | ~ value(in(n1,u),n0)
    | value(out(n1,u),n0) ),
    file('HWV036-1.p',unknown),
    [] ).

cnf(125,plain,
    ( ~ type(u,not__dfg)
    | ~ type(u,or__dfg)
    | ~ mode(u,ok)
    | ~ value(out(n1,u),n0) ),
    inference(mrr,[status(thm)],[124,5]),
    [iquote('0:MRR:124.4,5.0')] ).

cnf(65,plain,
    ( ~ type(u,or__dfg)
    | ~ mode(u,ok)
    | ~ value(out(n1,u),n0)
    | ~ value(in(n1,u),v)
    | equal_value(v,n0) ),
    inference(res,[status(thm),theory(equality)],[16,3]),
    [iquote('0:Res:16.3,3.0')] ).

cnf(60,plain,
    ( ~ type(u,or__dfg)
    | ~ mode(u,ok)
    | ~ value(out(n1,u),n0)
    | ~ connection(in(n2,u),v)
    | value(v,n0) ),
    inference(res,[status(thm),theory(equality)],[17,1]),
    [iquote('0:Res:17.3,1.0')] ).

cnf(61,plain,
    ( ~ type(u,or__dfg)
    | ~ mode(u,ok)
    | ~ value(out(n1,u),n0)
    | ~ connection(v,in(n2,u))
    | value(v,n0) ),
    inference(res,[status(thm),theory(equality)],[17,2]),
    [iquote('0:Res:17.3,2.0')] ).

cnf(105,plain,
    ( ~ type(u,or__dfg)
    | ~ mode(u,ok)
    | ~ value(out(n1,u),n0)
    | equal_value(n0,n0) ),
    inference(obv,[status(thm),theory(equality)],[102]),
    [iquote('0:Obv:102.2')] ).

cnf(62,plain,
    ( ~ type(u,or__dfg)
    | ~ mode(u,ok)
    | ~ value(out(n1,u),n0)
    | ~ value(in(n2,u),v)
    | equal_value(v,n0) ),
    inference(res,[status(thm),theory(equality)],[17,3]),
    [iquote('0:Res:17.3,3.0')] ).

cnf(13,axiom,
    ( ~ type(u,or__dfg)
    | ~ mode(u,ok)
    | ~ value(in(v,u),n1)
    | value(out(n1,u),n1) ),
    file('HWV036-1.p',unknown),
    [] ).

cnf(8,axiom,
    ( ~ type(u,and__dfg)
    | ~ mode(u,ok)
    | ~ value(in(v,u),n0)
    | value(out(n1,u),n0) ),
    file('HWV036-1.p',unknown),
    [] ).

cnf(11,axiom,
    ( ~ type(u,and__dfg)
    | ~ mode(u,ok)
    | ~ value(out(n1,u),n1)
    | value(in(n1,u),n1) ),
    file('HWV036-1.p',unknown),
    [] ).

cnf(18,axiom,
    ( ~ type(u,not__dfg)
    | ~ mode(u,ok)
    | ~ value(in(n1,u),n0)
    | value(out(n1,u),n1) ),
    file('HWV036-1.p',unknown),
    [] ).

cnf(20,axiom,
    ( ~ type(u,not__dfg)
    | ~ mode(u,ok)
    | ~ value(out(n1,u),n0)
    | value(in(n1,u),n1) ),
    file('HWV036-1.p',unknown),
    [] ).

cnf(12,axiom,
    ( ~ type(u,and__dfg)
    | ~ mode(u,ok)
    | ~ value(out(n1,u),n1)
    | value(in(n2,u),n1) ),
    file('HWV036-1.p',unknown),
    [] ).

cnf(19,axiom,
    ( ~ type(u,not__dfg)
    | ~ mode(u,ok)
    | ~ value(in(n1,u),n1)
    | value(out(n1,u),n0) ),
    file('HWV036-1.p',unknown),
    [] ).

cnf(21,axiom,
    ( ~ type(u,not__dfg)
    | ~ mode(u,ok)
    | ~ value(out(n1,u),n1)
    | value(in(n1,u),n0) ),
    file('HWV036-1.p',unknown),
    [] ).

cnf(16,axiom,
    ( ~ type(u,or__dfg)
    | ~ mode(u,ok)
    | ~ value(out(n1,u),n0)
    | value(in(n1,u),n0) ),
    file('HWV036-1.p',unknown),
    [] ).

cnf(17,axiom,
    ( ~ type(u,or__dfg)
    | ~ mode(u,ok)
    | ~ value(out(n1,u),n0)
    | value(in(n2,u),n0) ),
    file('HWV036-1.p',unknown),
    [] ).

cnf(32,axiom,
    ( ~ type(u,halfadder)
    | connection(out(n1,or1(u)),in(n1,and1(u))) ),
    file('HWV036-1.p',unknown),
    [] ).

cnf(33,axiom,
    ( ~ type(u,halfadder)
    | connection(out(n1,and2(u)),in(n1,not1(u))) ),
    file('HWV036-1.p',unknown),
    [] ).

cnf(34,axiom,
    ( ~ type(u,halfadder)
    | connection(out(n1,not1(u)),in(n2,and1(u))) ),
    file('HWV036-1.p',unknown),
    [] ).

cnf(38,axiom,
    ( ~ type(u,fulladder)
    | connection(out(s,h1(u)),in(n2,h2(u))) ),
    file('HWV036-1.p',unknown),
    [] ).

cnf(39,axiom,
    ( ~ type(u,fulladder)
    | connection(out(c,h1(u)),in(n2,or1(u))) ),
    file('HWV036-1.p',unknown),
    [] ).

cnf(52,plain,
    ( ~ type(u,halfadder)
    | mode(and1(u),abnormal)
    | mode(and1(u),ok) ),
    inference(res,[status(thm),theory(equality)],[22,7]),
    [iquote('0:Res:22.1,7.0')] ).

cnf(51,plain,
    ( ~ type(u,halfadder)
    | mode(and2(u),abnormal)
    | mode(and2(u),ok) ),
    inference(res,[status(thm),theory(equality)],[23,7]),
    [iquote('0:Res:23.1,7.0')] ).

cnf(50,plain,
    ( ~ type(u,halfadder)
    | mode(not1(u),abnormal)
    | mode(not1(u),ok) ),
    inference(res,[status(thm),theory(equality)],[24,7]),
    [iquote('0:Res:24.1,7.0')] ).

cnf(40,axiom,
    ( ~ type(u,fulladder)
    | connection(out(c,h2(u)),in(n1,or1(u))) ),
    file('HWV036-1.p',unknown),
    [] ).

cnf(49,plain,
    ( ~ type(u,fulladder)
    | mode(h1(u),abnormal)
    | mode(h1(u),ok) ),
    inference(res,[status(thm),theory(equality)],[35,7]),
    [iquote('0:Res:35.1,7.0')] ).

cnf(48,plain,
    ( ~ type(u,fulladder)
    | mode(h2(u),abnormal)
    | mode(h2(u),ok) ),
    inference(res,[status(thm),theory(equality)],[36,7]),
    [iquote('0:Res:36.1,7.0')] ).

cnf(47,plain,
    ( ~ type(u,fulladder)
    | mode(or1(u),abnormal)
    | mode(or1(u),ok) ),
    inference(res,[status(thm),theory(equality)],[37,7]),
    [iquote('0:Res:37.1,7.0')] ).

cnf(46,plain,
    ( ~ type(u,halfadder)
    | mode(or1(u),abnormal)
    | mode(or1(u),ok) ),
    inference(res,[status(thm),theory(equality)],[25,7]),
    [iquote('0:Res:25.1,7.0')] ).

cnf(26,axiom,
    ( ~ type(u,halfadder)
    | connection(in(n1,u),in(n1,or1(u))) ),
    file('HWV036-1.p',unknown),
    [] ).

cnf(27,axiom,
    ( ~ type(u,halfadder)
    | connection(in(n2,u),in(n2,or1(u))) ),
    file('HWV036-1.p',unknown),
    [] ).

cnf(28,axiom,
    ( ~ type(u,halfadder)
    | connection(in(n1,u),in(n1,and2(u))) ),
    file('HWV036-1.p',unknown),
    [] ).

cnf(29,axiom,
    ( ~ type(u,halfadder)
    | connection(in(n2,u),in(n2,and2(u))) ),
    file('HWV036-1.p',unknown),
    [] ).

cnf(41,axiom,
    ( ~ type(u,fulladder)
    | connection(in(n1,u),in(n1,h2(u))) ),
    file('HWV036-1.p',unknown),
    [] ).

cnf(44,axiom,
    ( ~ type(u,fulladder)
    | connection(out(s,u),out(s,h2(u))) ),
    file('HWV036-1.p',unknown),
    [] ).

cnf(30,axiom,
    ( ~ type(u,halfadder)
    | connection(out(s,u),out(n1,and1(u))) ),
    file('HWV036-1.p',unknown),
    [] ).

cnf(31,axiom,
    ( ~ type(u,halfadder)
    | connection(out(c,u),out(n1,and2(u))) ),
    file('HWV036-1.p',unknown),
    [] ).

cnf(42,axiom,
    ( ~ type(u,fulladder)
    | connection(in(n2,u),in(n1,h1(u))) ),
    file('HWV036-1.p',unknown),
    [] ).

cnf(43,axiom,
    ( ~ type(u,fulladder)
    | connection(in(c,u),in(n2,h1(u))) ),
    file('HWV036-1.p',unknown),
    [] ).

cnf(45,axiom,
    ( ~ type(u,fulladder)
    | connection(out(c,u),out(n1,or1(u))) ),
    file('HWV036-1.p',unknown),
    [] ).

cnf(1,axiom,
    ( ~ value(u,v)
    | ~ connection(u,w)
    | value(w,v) ),
    file('HWV036-1.p',unknown),
    [] ).

cnf(2,axiom,
    ( ~ value(u,v)
    | ~ connection(w,u)
    | value(w,v) ),
    file('HWV036-1.p',unknown),
    [] ).

cnf(3,axiom,
    ( ~ value(u,v)
    | ~ value(u,w)
    | equal_value(w,v) ),
    file('HWV036-1.p',unknown),
    [] ).

cnf(7,axiom,
    ( ~ type(u,v)
    | mode(u,abnormal)
    | mode(u,ok) ),
    file('HWV036-1.p',unknown),
    [] ).

cnf(6,axiom,
    ( ~ mode(u,abnormal)
    | ~ mode(u,ok) ),
    file('HWV036-1.p',unknown),
    [] ).

cnf(22,axiom,
    ( ~ type(u,halfadder)
    | type(and1(u),and__dfg) ),
    file('HWV036-1.p',unknown),
    [] ).

cnf(23,axiom,
    ( ~ type(u,halfadder)
    | type(and2(u),and__dfg) ),
    file('HWV036-1.p',unknown),
    [] ).

cnf(24,axiom,
    ( ~ type(u,halfadder)
    | type(not1(u),not__dfg) ),
    file('HWV036-1.p',unknown),
    [] ).

cnf(25,axiom,
    ( ~ type(u,halfadder)
    | type(or1(u),or__dfg) ),
    file('HWV036-1.p',unknown),
    [] ).

cnf(35,axiom,
    ( ~ type(u,fulladder)
    | type(h1(u),halfadder) ),
    file('HWV036-1.p',unknown),
    [] ).

cnf(36,axiom,
    ( ~ type(u,fulladder)
    | type(h2(u),halfadder) ),
    file('HWV036-1.p',unknown),
    [] ).

cnf(37,axiom,
    ( ~ type(u,fulladder)
    | type(or1(u),or__dfg) ),
    file('HWV036-1.p',unknown),
    [] ).

cnf(4,axiom,
    ~ equal_value(n0,n1),
    file('HWV036-1.p',unknown),
    [] ).

cnf(5,axiom,
    ~ equal_value(n1,n0),
    file('HWV036-1.p',unknown),
    [] ).

%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.05/0.09  % Problem  : HWV036-1 : TPTP v8.1.0. Released v2.5.0.
% 0.05/0.10  % Command  : run_spass %d %s
% 0.09/0.28  % Computer : n032.cluster.edu
% 0.09/0.28  % Model    : x86_64 x86_64
% 0.09/0.28  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.09/0.28  % Memory   : 8042.1875MB
% 0.09/0.28  % OS       : Linux 3.10.0-693.el7.x86_64
% 0.09/0.28  % CPULimit : 300
% 0.09/0.28  % WCLimit  : 600
% 0.09/0.28  % DateTime : Fri Jun 17 03:08:30 EDT 2022
% 0.09/0.28  % CPUTime  : 
% 0.14/0.36  
% 0.14/0.36  SPASS V 3.9 
% 0.14/0.36  SPASS beiseite: Completion found.
% 0.14/0.36  % SZS status CounterSatisfiable
% 0.14/0.36  Problem: /export/starexec/sandbox2/benchmark/theBenchmark.p 
% 0.14/0.36  SPASS derived 156 clauses, backtracked 0 clauses, performed 2 splits and kept 116 clauses.
% 0.14/0.36  SPASS allocated 63377 KBytes.
% 0.14/0.36  SPASS spent	0:00:00.07 on the problem.
% 0.14/0.36  		0:00:00.03 for the input.
% 0.14/0.36  		0:00:00.00 for the FLOTTER CNF translation.
% 0.14/0.36  		0:00:00.00 for inferences.
% 0.14/0.36  		0:00:00.00 for the backtracking.
% 0.14/0.36  		0:00:00.01 for the reduction.
% 0.14/0.36  
% 0.14/0.36  
% 0.14/0.36   The saturated set of worked-off clauses is :
% 0.14/0.36  % SZS output start Saturation
% See solution above
%------------------------------------------------------------------------------