%------------------------------------------------------------------------------
% File : Drodi---4.1.1
% Problem : SWB093+1 : TPTP v9.3.1. Released v5.2.0.
% Transfm : none
% Format : tptp:raw
% Command : drodi -timeout(300) /export/starexec/sandbox/benchmark/theBenchmark.p
% Computer : n020.cluster.edu
% Model : x86_64 x86_64
% CPU : Intel(R) Xeon(R) CPU E5-2620 v4 2.10GHz
% Memory : 8046.5625MB
% OS : Linux 6.8.0-71-generic
% CPULimit : 300s
% WCLimit : 300s
% DateTime : Thu Sep 24 02:37:19 PM UTC 2026
% Result : Theorem 51.95s 7.25s
% Output : CNFRefutation 44.95s
% Verified :
% SZS Type : Refutation
% Derivation depth : 15
% Number of leaves : 7
% Syntax : Number of formulae : 60 ( 19 unt; 0 def)
% Number of atoms : 247 ( 8 equ)
% Maximal formula atoms : 15 ( 4 avg)
% Number of connectives : 308 ( 121 ~; 118 |; 58 &)
% ( 6 <=>; 5 =>; 0 <=; 0 <~>)
% Maximal formula depth : 17 ( 6 avg)
% Maximal term depth : 3 ( 1 avg)
% Number of predicates : 5 ( 3 usr; 1 prp; 0-3 aty)
% Number of functors : 18 ( 18 usr; 13 con; 0-4 aty)
% Number of variables : 134 ( 120 !; 14 ?)
% Comments :
%------------------------------------------------------------------------------
fof(f159,axiom,
! [X] :
( icext(uri_owl_Restriction,X)
=> ic(X) ),
file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).
fof(f233,axiom,
! [X,Y] :
( iext(uri_owl_minQualifiedCardinality,X,Y)
=> ( icext(uri_xml_nonNegativeInteger,Y)
& icext(uri_owl_Restriction,X) ) ),
file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).
fof(f337,axiom,
! [Z,P,C] :
( ( iext(uri_owl_onClass,Z,C)
& iext(uri_owl_onProperty,Z,P)
& iext(uri_owl_minQualifiedCardinality,Z,literal_typed(dat_str_1,uri_xsd_nonNegativeInteger)) )
=> ! [X] :
( icext(Z,X)
<=> ? [Y] :
( icext(C,Y)
& iext(P,X,Y) ) ) ),
file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).
fof(f338,axiom,
! [Z,P,C] :
( ( iext(uri_owl_onClass,Z,C)
& iext(uri_owl_onProperty,Z,P)
& iext(uri_owl_minQualifiedCardinality,Z,literal_typed(dat_str_2,uri_xsd_nonNegativeInteger)) )
=> ! [X] :
( icext(Z,X)
<=> ? [Y1,Y2] :
( Y1 != Y2
& icext(C,Y2)
& iext(P,X,Y2)
& icext(C,Y1)
& iext(P,X,Y1) ) ) ),
file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).
fof(f343,axiom,
! [C1,C2] :
( iext(uri_rdfs_subClassOf,C1,C2)
<=> ( ! [X] :
( icext(C1,X)
=> icext(C2,X) )
& ic(C2)
& ic(C1) ) ),
file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).
fof(f559,conjecture,
iext(uri_rdfs_subClassOf,uri_ex_x1,uri_ex_x2),
file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).
fof(f560,negated_conjecture,
~ iext(uri_rdfs_subClassOf,uri_ex_x1,uri_ex_x2),
inference(negated_conjecture,[status(cth)],[f559]) ).
fof(f561,axiom,
( iext(uri_owl_onClass,uri_ex_x1,uri_ex_c)
& iext(uri_owl_onProperty,uri_ex_x1,uri_ex_p)
& iext(uri_owl_minQualifiedCardinality,uri_ex_x1,literal_typed(dat_str_2,uri_xsd_nonNegativeInteger))
& iext(uri_owl_onClass,uri_ex_x2,uri_ex_c)
& iext(uri_owl_onProperty,uri_ex_x2,uri_ex_p)
& iext(uri_owl_minQualifiedCardinality,uri_ex_x2,literal_typed(dat_str_1,uri_xsd_nonNegativeInteger)) ),
file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).
fof(f853,plain,
! [X] :
( ic(X)
| ~ icext(uri_owl_Restriction,X) ),
inference(pre_NNF_transformation,[status(thm)],[f159]) ).
fof(f854,plain,
! [X0] :
( ic(X0)
| ~ icext(uri_owl_Restriction,X0) ),
inference(cnf_transformation,[status(thm)],[f853]) ).
fof(f993,plain,
! [X,Y] :
( ( icext(uri_xml_nonNegativeInteger,Y)
& icext(uri_owl_Restriction,X) )
| ~ iext(uri_owl_minQualifiedCardinality,X,Y) ),
inference(pre_NNF_transformation,[status(thm)],[f233]) ).
fof(f994,plain,
! [X0,X1] :
( icext(uri_owl_Restriction,X0)
| ~ iext(uri_owl_minQualifiedCardinality,X0,X1) ),
inference(cnf_transformation,[status(thm)],[f993]) ).
fof(f1675,plain,
! [Z,P,C] :
( ! [X] :
( icext(Z,X)
<=> ? [Y] :
( icext(C,Y)
& iext(P,X,Y) ) )
| ~ iext(uri_owl_onClass,Z,C)
| ~ iext(uri_owl_onProperty,Z,P)
| ~ iext(uri_owl_minQualifiedCardinality,Z,literal_typed(dat_str_1,uri_xsd_nonNegativeInteger)) ),
inference(pre_NNF_transformation,[status(thm)],[f337]) ).
fof(f1676,plain,
! [Z,P,C] :
( ! [X] :
( ( ! [Y] :
( ~ icext(C,Y)
| ~ iext(P,X,Y) )
| icext(Z,X) )
& ( ? [Y] :
( icext(C,Y)
& iext(P,X,Y) )
| ~ icext(Z,X) ) )
| ~ iext(uri_owl_onClass,Z,C)
| ~ iext(uri_owl_onProperty,Z,P)
| ~ iext(uri_owl_minQualifiedCardinality,Z,literal_typed(dat_str_1,uri_xsd_nonNegativeInteger)) ),
inference(NNF_transformation,[status(thm)],[f1675]) ).
fof(f1677,plain,
! [Z,P,C] :
( ( ! [X] :
( ! [Y] :
( ~ icext(C,Y)
| ~ iext(P,X,Y) )
| icext(Z,X) )
& ! [X] :
( ? [Y] :
( icext(C,Y)
& iext(P,X,Y) )
| ~ icext(Z,X) ) )
| ~ iext(uri_owl_onClass,Z,C)
| ~ iext(uri_owl_onProperty,Z,P)
| ~ iext(uri_owl_minQualifiedCardinality,Z,literal_typed(dat_str_1,uri_xsd_nonNegativeInteger)) ),
inference(miniscoping,[status(thm)],[f1676]) ).
fof(f1678,plain,
! [Z,P,C] :
( ( ! [X] :
( ! [Y] :
( ~ icext(C,Y)
| ~ iext(P,X,Y) )
| icext(Z,X) )
& ! [X] :
( ( icext(C,sK104_skl(X,C,P,Z))
& iext(P,X,sK104_skl(X,C,P,Z)) )
| ~ icext(Z,X) ) )
| ~ iext(uri_owl_onClass,Z,C)
| ~ iext(uri_owl_onProperty,Z,P)
| ~ iext(uri_owl_minQualifiedCardinality,Z,literal_typed(dat_str_1,uri_xsd_nonNegativeInteger)) ),
inference(skolemize,[status(esa),new_symbols(skolem,[sK104_skl]),skolemize(Y,sK104_skl(X,C,P,Z))],[f1677]) ).
fof(f1681,plain,
! [X0,X1,X2,X3,X4] :
( ~ icext(X2,X4)
| ~ iext(X1,X3,X4)
| icext(X0,X3)
| ~ iext(uri_owl_onClass,X0,X2)
| ~ iext(uri_owl_onProperty,X0,X1)
| ~ iext(uri_owl_minQualifiedCardinality,X0,literal_typed(dat_str_1,uri_xsd_nonNegativeInteger)) ),
inference(cnf_transformation,[status(thm)],[f1678]) ).
fof(f1682,plain,
! [Z,P,C] :
( ! [X] :
( icext(Z,X)
<=> ? [Y1,Y2] :
( Y1 != Y2
& icext(C,Y2)
& iext(P,X,Y2)
& icext(C,Y1)
& iext(P,X,Y1) ) )
| ~ iext(uri_owl_onClass,Z,C)
| ~ iext(uri_owl_onProperty,Z,P)
| ~ iext(uri_owl_minQualifiedCardinality,Z,literal_typed(dat_str_2,uri_xsd_nonNegativeInteger)) ),
inference(pre_NNF_transformation,[status(thm)],[f338]) ).
fof(f1683,plain,
! [Z,P,C] :
( ! [X] :
( ( ! [Y1,Y2] :
( Y1 = Y2
| ~ icext(C,Y2)
| ~ iext(P,X,Y2)
| ~ icext(C,Y1)
| ~ iext(P,X,Y1) )
| icext(Z,X) )
& ( ? [Y1,Y2] :
( Y1 != Y2
& icext(C,Y2)
& iext(P,X,Y2)
& icext(C,Y1)
& iext(P,X,Y1) )
| ~ icext(Z,X) ) )
| ~ iext(uri_owl_onClass,Z,C)
| ~ iext(uri_owl_onProperty,Z,P)
| ~ iext(uri_owl_minQualifiedCardinality,Z,literal_typed(dat_str_2,uri_xsd_nonNegativeInteger)) ),
inference(NNF_transformation,[status(thm)],[f1682]) ).
fof(f1684,plain,
! [Z,P,C] :
( ( ! [X] :
( ! [Y1,Y2] :
( Y1 = Y2
| ~ icext(C,Y2)
| ~ iext(P,X,Y2)
| ~ icext(C,Y1)
| ~ iext(P,X,Y1) )
| icext(Z,X) )
& ! [X] :
( ? [Y1,Y2] :
( Y1 != Y2
& icext(C,Y2)
& iext(P,X,Y2)
& icext(C,Y1)
& iext(P,X,Y1) )
| ~ icext(Z,X) ) )
| ~ iext(uri_owl_onClass,Z,C)
| ~ iext(uri_owl_onProperty,Z,P)
| ~ iext(uri_owl_minQualifiedCardinality,Z,literal_typed(dat_str_2,uri_xsd_nonNegativeInteger)) ),
inference(miniscoping,[status(thm)],[f1683]) ).
fof(f1685,plain,
! [Z,P,C] :
( ( ! [X] :
( ! [Y1,Y2] :
( Y1 = Y2
| ~ icext(C,Y2)
| ~ iext(P,X,Y2)
| ~ icext(C,Y1)
| ~ iext(P,X,Y1) )
| icext(Z,X) )
& ! [X] :
( ( sK105_skl(X,C,P,Z) != sK106_skl(X,C,P,Z)
& icext(C,sK106_skl(X,C,P,Z))
& iext(P,X,sK106_skl(X,C,P,Z))
& icext(C,sK105_skl(X,C,P,Z))
& iext(P,X,sK105_skl(X,C,P,Z)) )
| ~ icext(Z,X) ) )
| ~ iext(uri_owl_onClass,Z,C)
| ~ iext(uri_owl_onProperty,Z,P)
| ~ iext(uri_owl_minQualifiedCardinality,Z,literal_typed(dat_str_2,uri_xsd_nonNegativeInteger)) ),
inference(skolemize,[status(esa),new_symbols(skolem,[sK105_skl,sK106_skl]),skolemize(Y1,sK105_skl(X,C,P,Z)),skolemize(Y2,sK106_skl(X,C,P,Z))],[f1684]) ).
fof(f1688,plain,
! [X0,X1,X2,X3] :
( iext(X1,X3,sK106_skl(X3,X2,X1,X0))
| ~ icext(X0,X3)
| ~ iext(uri_owl_onClass,X0,X2)
| ~ iext(uri_owl_onProperty,X0,X1)
| ~ iext(uri_owl_minQualifiedCardinality,X0,literal_typed(dat_str_2,uri_xsd_nonNegativeInteger)) ),
inference(cnf_transformation,[status(thm)],[f1685]) ).
fof(f1689,plain,
! [X0,X1,X2,X3] :
( icext(X2,sK106_skl(X3,X2,X1,X0))
| ~ icext(X0,X3)
| ~ iext(uri_owl_onClass,X0,X2)
| ~ iext(uri_owl_onProperty,X0,X1)
| ~ iext(uri_owl_minQualifiedCardinality,X0,literal_typed(dat_str_2,uri_xsd_nonNegativeInteger)) ),
inference(cnf_transformation,[status(thm)],[f1685]) ).
fof(f1731,plain,
! [C1,C2] :
( iext(uri_rdfs_subClassOf,C1,C2)
<=> ( ! [X] :
( icext(C2,X)
| ~ icext(C1,X) )
& ic(C2)
& ic(C1) ) ),
inference(pre_NNF_transformation,[status(thm)],[f343]) ).
fof(f1732,plain,
! [C1,C2] :
( ( ? [X] :
( ~ icext(C2,X)
& icext(C1,X) )
| ~ ic(C2)
| ~ ic(C1)
| iext(uri_rdfs_subClassOf,C1,C2) )
& ( ( ! [X] :
( icext(C2,X)
| ~ icext(C1,X) )
& ic(C2)
& ic(C1) )
| ~ iext(uri_rdfs_subClassOf,C1,C2) ) ),
inference(NNF_transformation,[status(thm)],[f1731]) ).
fof(f1733,plain,
( ! [C1,C2] :
( ? [X] :
( ~ icext(C2,X)
& icext(C1,X) )
| ~ ic(C2)
| ~ ic(C1)
| iext(uri_rdfs_subClassOf,C1,C2) )
& ! [C1,C2] :
( ( ! [X] :
( icext(C2,X)
| ~ icext(C1,X) )
& ic(C2)
& ic(C1) )
| ~ iext(uri_rdfs_subClassOf,C1,C2) ) ),
inference(miniscoping,[status(thm)],[f1732]) ).
fof(f1734,plain,
( ! [C1,C2] :
( ( ~ icext(C2,sK115_skl(C2,C1))
& icext(C1,sK115_skl(C2,C1)) )
| ~ ic(C2)
| ~ ic(C1)
| iext(uri_rdfs_subClassOf,C1,C2) )
& ! [C1,C2] :
( ( ! [X] :
( icext(C2,X)
| ~ icext(C1,X) )
& ic(C2)
& ic(C1) )
| ~ iext(uri_rdfs_subClassOf,C1,C2) ) ),
inference(skolemize,[status(esa),new_symbols(skolem,[sK115_skl]),skolemize(X,sK115_skl(C2,C1))],[f1733]) ).
fof(f1738,plain,
! [X0,X1] :
( icext(X0,sK115_skl(X1,X0))
| ~ ic(X1)
| ~ ic(X0)
| iext(uri_rdfs_subClassOf,X0,X1) ),
inference(cnf_transformation,[status(thm)],[f1734]) ).
fof(f1739,plain,
! [X0,X1] :
( ~ icext(X1,sK115_skl(X1,X0))
| ~ ic(X1)
| ~ ic(X0)
| iext(uri_rdfs_subClassOf,X0,X1) ),
inference(cnf_transformation,[status(thm)],[f1734]) ).
fof(f2405,plain,
~ iext(uri_rdfs_subClassOf,uri_ex_x1,uri_ex_x2),
inference(cnf_transformation,[status(thm)],[f560]) ).
fof(f2406,plain,
iext(uri_owl_minQualifiedCardinality,uri_ex_x2,literal_typed(dat_str_1,uri_xsd_nonNegativeInteger)),
inference(cnf_transformation,[status(thm)],[f561]) ).
fof(f2407,plain,
iext(uri_owl_onProperty,uri_ex_x2,uri_ex_p),
inference(cnf_transformation,[status(thm)],[f561]) ).
fof(f2408,plain,
iext(uri_owl_onClass,uri_ex_x2,uri_ex_c),
inference(cnf_transformation,[status(thm)],[f561]) ).
fof(f2409,plain,
iext(uri_owl_minQualifiedCardinality,uri_ex_x1,literal_typed(dat_str_2,uri_xsd_nonNegativeInteger)),
inference(cnf_transformation,[status(thm)],[f561]) ).
fof(f2410,plain,
iext(uri_owl_onProperty,uri_ex_x1,uri_ex_p),
inference(cnf_transformation,[status(thm)],[f561]) ).
fof(f2411,plain,
iext(uri_owl_onClass,uri_ex_x1,uri_ex_c),
inference(cnf_transformation,[status(thm)],[f561]) ).
fof(f7016,plain,
icext(uri_owl_Restriction,uri_ex_x1),
inference(resolution,[status(thm)],[f994,f2409]) ).
fof(f7017,plain,
icext(uri_owl_Restriction,uri_ex_x2),
inference(resolution,[status(thm)],[f994,f2406]) ).
fof(f7020,plain,
ic(uri_ex_x1),
inference(resolution,[status(thm)],[f7016,f854]) ).
fof(f7028,plain,
ic(uri_ex_x2),
inference(resolution,[status(thm)],[f7017,f854]) ).
fof(f11798,plain,
! [X0,X1,X2,X3] :
( ~ icext(X1,X3)
| ~ iext(X0,X2,X3)
| icext(uri_ex_x2,X2)
| ~ iext(uri_owl_onClass,uri_ex_x2,X1)
| ~ iext(uri_owl_onProperty,uri_ex_x2,X0) ),
inference(resolution,[status(thm)],[f1681,f2406]) ).
fof(f11814,plain,
! [X0,X1,X2] :
( ~ icext(X0,X2)
| ~ iext(uri_ex_p,X1,X2)
| icext(uri_ex_x2,X1)
| ~ iext(uri_owl_onClass,uri_ex_x2,X0) ),
inference(resolution,[status(thm)],[f11798,f2407]) ).
fof(f11815,plain,
! [X0,X1] :
( ~ icext(uri_ex_c,X1)
| ~ iext(uri_ex_p,X0,X1)
| icext(uri_ex_x2,X0) ),
inference(resolution,[status(thm)],[f11814,f2408]) ).
fof(f12279,plain,
! [X0,X1,X2] :
( iext(X0,X2,sK106_skl(X2,X1,X0,uri_ex_x1))
| ~ icext(uri_ex_x1,X2)
| ~ iext(uri_owl_onClass,uri_ex_x1,X1)
| ~ iext(uri_owl_onProperty,uri_ex_x1,X0) ),
inference(resolution,[status(thm)],[f1688,f2409]) ).
fof(f12280,plain,
! [X0,X1,X2] :
( icext(X1,sK106_skl(X2,X1,X0,uri_ex_x1))
| ~ icext(uri_ex_x1,X2)
| ~ iext(uri_owl_onClass,uri_ex_x1,X1)
| ~ iext(uri_owl_onProperty,uri_ex_x1,X0) ),
inference(resolution,[status(thm)],[f1689,f2409]) ).
fof(f12282,plain,
! [X0,X1] :
( iext(uri_ex_p,X1,sK106_skl(X1,X0,uri_ex_p,uri_ex_x1))
| ~ icext(uri_ex_x1,X1)
| ~ iext(uri_owl_onClass,uri_ex_x1,X0) ),
inference(resolution,[status(thm)],[f12279,f2410]) ).
fof(f12283,plain,
! [X0,X1] :
( icext(X0,sK106_skl(X1,X0,uri_ex_p,uri_ex_x1))
| ~ icext(uri_ex_x1,X1)
| ~ iext(uri_owl_onClass,uri_ex_x1,X0) ),
inference(resolution,[status(thm)],[f12280,f2410]) ).
fof(f12289,plain,
! [X0] :
( iext(uri_ex_p,X0,sK106_skl(X0,uri_ex_c,uri_ex_p,uri_ex_x1))
| ~ icext(uri_ex_x1,X0) ),
inference(resolution,[status(thm)],[f12282,f2411]) ).
fof(f12296,plain,
! [X0] :
( icext(uri_ex_c,sK106_skl(X0,uri_ex_c,uri_ex_p,uri_ex_x1))
| ~ icext(uri_ex_x1,X0) ),
inference(resolution,[status(thm)],[f12283,f2411]) ).
fof(f12963,plain,
! [X0] :
( icext(uri_ex_x1,sK115_skl(X0,uri_ex_x1))
| ~ ic(X0)
| iext(uri_rdfs_subClassOf,uri_ex_x1,X0) ),
inference(resolution,[status(thm)],[f1738,f7020]) ).
fof(f13971,plain,
( icext(uri_ex_x1,sK115_skl(uri_ex_x2,uri_ex_x1))
| iext(uri_rdfs_subClassOf,uri_ex_x1,uri_ex_x2) ),
inference(resolution,[status(thm)],[f12963,f7028]) ).
fof(f14042,plain,
icext(uri_ex_x1,sK115_skl(uri_ex_x2,uri_ex_x1)),
inference(forward_subsumption_resolution,[status(thm)],[f13971,f2405]) ).
fof(f14049,plain,
icext(uri_ex_c,sK106_skl(sK115_skl(uri_ex_x2,uri_ex_x1),uri_ex_c,uri_ex_p,uri_ex_x1)),
inference(resolution,[status(thm)],[f14042,f12296]) ).
fof(f14050,plain,
iext(uri_ex_p,sK115_skl(uri_ex_x2,uri_ex_x1),sK106_skl(sK115_skl(uri_ex_x2,uri_ex_x1),uri_ex_c,uri_ex_p,uri_ex_x1)),
inference(resolution,[status(thm)],[f14042,f12289]) ).
fof(f14285,plain,
( ~ icext(uri_ex_c,sK106_skl(sK115_skl(uri_ex_x2,uri_ex_x1),uri_ex_c,uri_ex_p,uri_ex_x1))
| icext(uri_ex_x2,sK115_skl(uri_ex_x2,uri_ex_x1)) ),
inference(resolution,[status(thm)],[f14050,f11815]) ).
fof(f14290,plain,
icext(uri_ex_x2,sK115_skl(uri_ex_x2,uri_ex_x1)),
inference(forward_subsumption_resolution,[status(thm)],[f14285,f14049]) ).
fof(f14293,plain,
( ~ ic(uri_ex_x2)
| ~ ic(uri_ex_x1)
| iext(uri_rdfs_subClassOf,uri_ex_x1,uri_ex_x2) ),
inference(resolution,[status(thm)],[f14290,f1739]) ).
fof(f14300,plain,
( ~ ic(uri_ex_x2)
| ~ ic(uri_ex_x1) ),
inference(forward_subsumption_resolution,[status(thm)],[f14293,f2405]) ).
fof(f14301,plain,
~ ic(uri_ex_x1),
inference(resolution,[status(thm)],[f14300,f7028]) ).
fof(f14302,plain,
$false,
inference(forward_subsumption_resolution,[status(thm)],[f14301,f7020]) ).
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.02 % Problem : SWB093+1 : TPTP v9.3.1. Released v5.2.0.
% 0.00/0.03 % Command : drodi -timeout(300) /export/starexec/sandbox/benchmark/theBenchmark.p
% 0.10/0.36 % Computer : n020.cluster.edu
% 0.10/0.36 % Model : x86_64 x86_64
% 0.10/0.36 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.10/0.36 % Memory : 8046.5625MB
% 0.10/0.36 % OS : Linux 6.8.0-71-generic
% 0.10/0.36 % CPULimit : 300
% 0.10/0.36 % WCLimit : 300
% 0.10/0.36 % DateTime : Mon Sep 21 07:47:35 UTC 2026
% 0.10/0.36 % CPUTime :
% 0.10/0.41 % Drodi V4.1.1
% 51.95/7.25 % Refutation found
% 51.95/7.25 % SZS status Theorem for theBenchmark: Theorem is valid
% 51.95/7.25 % SZS output start CNFRefutation for theBenchmark
% See solution above
% 44.95/7.30 % Elapsed time: 6.917184 seconds
% 44.95/7.30 % CPU time: 54.079082 seconds
% 44.95/7.30 % Total memory used: 278.593 MB
% 44.95/7.30 % Net memory used: 262.929 MB
%------------------------------------------------------------------------------