%------------------------------------------------------------------------------
% File : Drodi-SAT---4.1.1
% Problem : CSR018+1 : TPTP v9.3.1. Bugfixed v3.1.0.
% Transfm : none
% Format : tptp:raw
% Command : drodi -satmode(on) -timeout(300) /export/starexec/sandbox/benchmark/theBenchmark.p
% Computer : n014.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 12:14:35 PM UTC 2026
% Result : Theorem 0.14s 5.61s
% Output : Assurance 0s
% Verified :
% SZS Type : -
% Comments :
%------------------------------------------------------------------------------
%----No solution output by system
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.03 % Problem : CSR018+1 : TPTP v9.3.1. Bugfixed v3.1.0.
% 0.00/0.04 % Command : drodi -satmode(on) -timeout(300) /export/starexec/sandbox/benchmark/theBenchmark.p
% 0.10/5.38 % Computer : n014.cluster.edu
% 0.10/5.38 % Model : x86_64 x86_64
% 0.10/5.38 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.10/5.38 % Memory : 8046.5625MB
% 0.10/5.38 % OS : Linux 6.8.0-71-generic
% 0.10/5.38 % CPULimit : 300
% 0.10/5.38 % WCLimit : 300
% 0.10/5.38 % DateTime : Mon Sep 21 14:24:11 UTC 2026
% 0.10/5.38 % CPUTime :
% 0.10/5.39 % Drodi V4.1.1
% 0.14/5.61 % Refutation found
% 0.14/5.61 % SZS status Theorem for theBenchmark: Theorem is valid
% 0.14/5.61 % SZS output start CNFRefutation for theBenchmark
% 0.14/5.61 fof(f9,axiom,(
% 0.14/5.61 (! [Event,Time,Fluent] :( ( happens(Event,Time)& initiates(Event,Fluent,Time) )=> holdsAt(Fluent,plus(Time,n1)) ) )),
% 0.14/5.61 file('/export/starexec/sandbox/benchmark/theBenchmark.p')).
% 0.14/5.61 fof(f13,axiom,(
% 0.14/5.61 (! [Event,Fluent,Time] :( initiates(Event,Fluent,Time)<=> ( ( Event = push& Fluent = forwards& ~ happens(pull,Time) )| ( Event = pull& Fluent = backwards& ~ happens(push,Time) )| ( Event = pull& Fluent = spinning& happens(push,Time) ) ) ) )),
% 0.14/5.61 file('/export/starexec/sandbox/benchmark/theBenchmark.p')).
% 0.14/5.61 fof(f16,axiom,(
% 0.14/5.61 (! [Event,Time] :( happens(Event,Time)<=> ( ( Event = push& Time = n0 )| ( Event = pull& Time = n1 )| ( Event = pull& Time = n2 )| ( Event = push& Time = n2 ) ) ) )),
% 0.14/5.61 file('/export/starexec/sandbox/benchmark/theBenchmark.p')).
% 0.14/5.61 fof(f17,axiom,(
% 0.14/5.61 push != pull ),
% 0.14/5.61 file('/export/starexec/sandbox/benchmark/theBenchmark.p')).
% 0.14/5.61 fof(f25,axiom,(
% 0.14/5.61 plus(n1,n1) = n2 ),
% 0.14/5.61 file('/export/starexec/sandbox/benchmark/theBenchmark.p')).
% 0.14/5.61 fof(f32,axiom,(
% 0.14/5.61 (! [X,Y] :( less_or_equal(X,Y)<=> ( less(X,Y)| X = Y ) ) )),
% 0.14/5.61 file('/export/starexec/sandbox/benchmark/theBenchmark.p')).
% 0.14/5.61 fof(f33,axiom,(
% 0.14/5.61 ~ (? [X] : less(X,n0) )),
% 0.14/5.61 file('/export/starexec/sandbox/benchmark/theBenchmark.p')).
% 0.14/5.61 fof(f34,axiom,(
% 0.14/5.61 (! [X] :( less(X,n1)<=> less_or_equal(X,n0) ) )),
% 0.14/5.61 file('/export/starexec/sandbox/benchmark/theBenchmark.p')).
% 0.14/5.61 fof(f35,axiom,(
% 0.14/5.61 (! [X] :( less(X,n2)<=> less_or_equal(X,n1) ) )),
% 0.14/5.61 file('/export/starexec/sandbox/benchmark/theBenchmark.p')).
% 0.14/5.61 fof(f48,conjecture,(
% 0.14/5.61 holdsAt(backwards,n2) ),
% 0.14/5.61 file('/export/starexec/sandbox/benchmark/theBenchmark.p')).
% 0.14/5.61 fof(f49,negated_conjecture,(
% 0.14/5.61 ~(holdsAt(backwards,n2) )),
% 0.14/5.61 inference(negated_conjecture,[status(cth)],[f48])).
% 0.14/5.61 fof(f88,plain,(
% 0.14/5.61 ![Event,Time,Fluent]: ((~happens(Event,Time)|~initiates(Event,Fluent,Time))|holdsAt(Fluent,plus(Time,n1)))),
% 0.14/5.61 inference(pre_NNF_transformation,[status(thm)],[f9])).
% 0.14/5.61 fof(f89,plain,(
% 0.14/5.61 ![Time,Fluent]: ((![Event]: (~happens(Event,Time)|~initiates(Event,Fluent,Time)))|holdsAt(Fluent,plus(Time,n1)))),
% 0.14/5.61 inference(miniscoping,[status(thm)],[f88])).
% 0.14/5.61 fof(f90,plain,(
% 0.14/5.61 ![X0,X1,X2]: (~happens(X0,X1)|~initiates(X0,X2,X1)|holdsAt(X2,plus(X1,n1)))),
% 0.14/5.61 inference(cnf_transformation,[status(thm)],[f89])).
% 0.14/5.61 fof(f101,definition,(
% 0.14/5.61 ![Event,Fluent,Time]: (sP0_prd(Time,Fluent,Event)<=>(((Event=push&Fluent=forwards)&~happens(pull,Time))|((Event=pull&Fluent=backwards)&~happens(push,Time))))),
% 0.14/5.61 introduced(definition,[new_symbols(definition,[sP0_prd])],[])).
% 0.14/5.61 fof(f102,plain,(
% 0.14/5.61 ![Event,Fluent,Time]: (initiates(Event,Fluent,Time)<=>(sP0_prd(Time,Fluent,Event)|((Event=pull&Fluent=spinning)&happens(push,Time))))),
% 0.14/5.61 inference(formula_renaming,[status(thm)],[f13,f101])).
% 0.14/5.61 fof(f103,plain,(
% 0.14/5.61 ![Event,Fluent,Time]: ((~initiates(Event,Fluent,Time)|(sP0_prd(Time,Fluent,Event)|((Event=pull&Fluent=spinning)&happens(push,Time))))&(initiates(Event,Fluent,Time)|(~sP0_prd(Time,Fluent,Event)&((~Event=pull|~Fluent=spinning)|~happens(push,Time)))))),
% 0.14/5.61 inference(NNF_transformation,[status(thm)],[f102])).
% 0.14/5.61 fof(f104,plain,(
% 0.14/5.61 (![Event,Fluent,Time]: (~initiates(Event,Fluent,Time)|(sP0_prd(Time,Fluent,Event)|((Event=pull&Fluent=spinning)&happens(push,Time)))))&(![Event,Fluent,Time]: (initiates(Event,Fluent,Time)|(~sP0_prd(Time,Fluent,Event)&((~Event=pull|~Fluent=spinning)|~happens(push,Time)))))),
% 0.14/5.61 inference(miniscoping,[status(thm)],[f103])).
% 0.14/5.61 fof(f108,plain,(
% 0.14/5.61 ![X0,X1,X2]: (initiates(X0,X1,X2)|~sP0_prd(X2,X1,X0))),
% 0.14/5.61 inference(cnf_transformation,[status(thm)],[f104])).
% 0.14/5.61 fof(f120,definition,(
% 0.14/5.61 ![Event,Time]: (sP2_prd(Time,Event)<=>(((Event=push&Time=n0)|(Event=pull&Time=n1))|(Event=pull&Time=n2)))),
% 0.14/5.61 introduced(definition,[new_symbols(definition,[sP2_prd])],[])).
% 0.14/5.61 fof(f121,plain,(
% 0.14/5.61 ![Event,Time]: (happens(Event,Time)<=>(sP2_prd(Time,Event)|(Event=push&Time=n2)))),
% 0.14/5.61 inference(formula_renaming,[status(thm)],[f16,f120])).
% 0.14/5.61 fof(f122,plain,(
% 0.14/5.61 ![Event,Time]: ((~happens(Event,Time)|(sP2_prd(Time,Event)|(Event=push&Time=n2)))&(happens(Event,Time)|(~sP2_prd(Time,Event)&(~Event=push|~Time=n2))))),
% 0.14/5.61 inference(NNF_transformation,[status(thm)],[f121])).
% 0.14/5.61 fof(f123,plain,(
% 0.14/5.61 (![Event,Time]: (~happens(Event,Time)|(sP2_prd(Time,Event)|(Event=push&Time=n2))))&(![Event,Time]: (happens(Event,Time)|(~sP2_prd(Time,Event)&(~Event=push|~Time=n2))))),
% 0.14/5.61 inference(miniscoping,[status(thm)],[f122])).
% 0.14/5.61 fof(f125,plain,(
% 0.14/5.61 ![X0,X1]: (~happens(X0,X1)|sP2_prd(X1,X0)|X1=n2)),
% 0.14/5.61 inference(cnf_transformation,[status(thm)],[f123])).
% 0.14/5.61 fof(f126,plain,(
% 0.14/5.61 ![X0,X1]: (happens(X0,X1)|~sP2_prd(X1,X0))),
% 0.14/5.61 inference(cnf_transformation,[status(thm)],[f123])).
% 0.14/5.61 fof(f128,plain,(
% 0.14/5.61 ~push=pull),
% 0.14/5.61 inference(cnf_transformation,[status(thm)],[f17])).
% 0.14/5.61 fof(f136,plain,(
% 0.14/5.61 plus(n1,n1)=n2),
% 0.14/5.61 inference(cnf_transformation,[status(thm)],[f25])).
% 0.14/5.61 fof(f143,plain,(
% 0.14/5.61 ![X,Y]: ((~less_or_equal(X,Y)|(less(X,Y)|X=Y))&(less_or_equal(X,Y)|(~less(X,Y)&~X=Y)))),
% 0.14/5.61 inference(NNF_transformation,[status(thm)],[f32])).
% 0.14/5.61 fof(f144,plain,(
% 0.14/5.61 (![X,Y]: (~less_or_equal(X,Y)|(less(X,Y)|X=Y)))&(![X,Y]: (less_or_equal(X,Y)|(~less(X,Y)&~X=Y)))),
% 0.14/5.61 inference(miniscoping,[status(thm)],[f143])).
% 0.14/5.61 fof(f145,plain,(
% 0.14/5.61 ![X0,X1]: (~less_or_equal(X0,X1)|less(X0,X1)|X0=X1)),
% 0.14/5.61 inference(cnf_transformation,[status(thm)],[f144])).
% 0.14/5.61 fof(f147,plain,(
% 0.14/5.61 ![X0,X1]: (less_or_equal(X0,X1)|~X0=X1)),
% 0.14/5.61 inference(cnf_transformation,[status(thm)],[f144])).
% 0.14/5.61 fof(f148,plain,(
% 0.14/5.61 (![X]: ~less(X,n0))),
% 0.14/5.61 inference(pre_NNF_transformation,[status(thm)],[f33])).
% 0.14/5.61 fof(f149,plain,(
% 0.14/5.61 ![X0]: (~less(X0,n0))),
% 0.14/5.61 inference(cnf_transformation,[status(thm)],[f148])).
% 0.14/5.61 fof(f150,plain,(
% 0.14/5.61 ![X]: ((~less(X,n1)|less_or_equal(X,n0))&(less(X,n1)|~less_or_equal(X,n0)))),
% 0.14/5.61 inference(NNF_transformation,[status(thm)],[f34])).
% 0.14/5.61 fof(f151,plain,(
% 0.14/5.61 (![X]: (~less(X,n1)|less_or_equal(X,n0)))&(![X]: (less(X,n1)|~less_or_equal(X,n0)))),
% 0.14/5.61 inference(miniscoping,[status(thm)],[f150])).
% 0.14/5.61 fof(f152,plain,(
% 0.14/5.61 ![X0]: (~less(X0,n1)|less_or_equal(X0,n0))),
% 0.14/5.61 inference(cnf_transformation,[status(thm)],[f151])).
% 0.14/5.61 fof(f153,plain,(
% 0.14/5.61 ![X0]: (less(X0,n1)|~less_or_equal(X0,n0))),
% 0.14/5.61 inference(cnf_transformation,[status(thm)],[f151])).
% 0.14/5.61 fof(f154,plain,(
% 0.14/5.61 ![X]: ((~less(X,n2)|less_or_equal(X,n1))&(less(X,n2)|~less_or_equal(X,n1)))),
% 0.14/5.61 inference(NNF_transformation,[status(thm)],[f35])).
% 0.14/5.61 fof(f155,plain,(
% 0.14/5.61 (![X]: (~less(X,n2)|less_or_equal(X,n1)))&(![X]: (less(X,n2)|~less_or_equal(X,n1)))),
% 0.14/5.61 inference(miniscoping,[status(thm)],[f154])).
% 0.14/5.61 fof(f157,plain,(
% 0.14/5.61 ![X0]: (less(X0,n2)|~less_or_equal(X0,n1))),
% 0.14/5.61 inference(cnf_transformation,[status(thm)],[f155])).
% 0.14/5.61 fof(f195,plain,(
% 0.14/5.61 ~holdsAt(backwards,n2)),
% 0.14/5.61 inference(cnf_transformation,[status(thm)],[f49])).
% 0.14/5.61 fof(f196,definition,(
% 0.14/5.61 ![Event,Fluent,Time]: (sP3_prd(Time,Fluent,Event)<=>((Event=push&Fluent=forwards)&~happens(pull,Time)))),
% 0.14/5.61 introduced(definition,[new_symbols(definition,[sP3_prd])],[])).
% 0.14/5.61 fof(f197,plain,(
% 0.14/5.61 ![Event,Fluent,Time]: (sP0_prd(Time,Fluent,Event)<=>(sP3_prd(Time,Fluent,Event)|((Event=pull&Fluent=backwards)&~happens(push,Time))))),
% 0.14/5.61 inference(formula_renaming,[status(thm)],[f101,f196])).
% 0.14/5.61 fof(f198,plain,(
% 0.14/5.61 ![Event,Fluent,Time]: ((~sP0_prd(Time,Fluent,Event)|(sP3_prd(Time,Fluent,Event)|((Event=pull&Fluent=backwards)&~happens(push,Time))))&(sP0_prd(Time,Fluent,Event)|(~sP3_prd(Time,Fluent,Event)&((~Event=pull|~Fluent=backwards)|happens(push,Time)))))),
% 0.14/5.61 inference(NNF_transformation,[status(thm)],[f197])).
% 0.14/5.61 fof(f199,plain,(
% 0.14/5.61 (![Event,Fluent,Time]: (~sP0_prd(Time,Fluent,Event)|(sP3_prd(Time,Fluent,Event)|((Event=pull&Fluent=backwards)&~happens(push,Time)))))&(![Event,Fluent,Time]: (sP0_prd(Time,Fluent,Event)|(~sP3_prd(Time,Fluent,Event)&((~Event=pull|~Fluent=backwards)|happens(push,Time)))))),
% 0.14/5.61 inference(miniscoping,[status(thm)],[f198])).
% 0.14/5.61 fof(f204,plain,(
% 0.14/5.61 ![X0,X1,X2]: (sP0_prd(X0,X1,X2)|~X2=pull|~X1=backwards|happens(push,X0))),
% 0.14/5.61 inference(cnf_transformation,[status(thm)],[f199])).
% 0.14/5.61 fof(f214,definition,(
% 0.14/5.61 ![Event,Time]: (sP5_prd(Time,Event)<=>((Event=push&Time=n0)|(Event=pull&Time=n1)))),
% 0.14/5.61 introduced(definition,[new_symbols(definition,[sP5_prd])],[])).
% 0.14/5.61 fof(f215,plain,(
% 0.14/5.61 ![Event,Time]: (sP2_prd(Time,Event)<=>(sP5_prd(Time,Event)|(Event=pull&Time=n2)))),
% 0.14/5.61 inference(formula_renaming,[status(thm)],[f120,f214])).
% 0.14/5.63 fof(f216,plain,(
% 0.14/5.63 ![Event,Time]: ((~sP2_prd(Time,Event)|(sP5_prd(Time,Event)|(Event=pull&Time=n2)))&(sP2_prd(Time,Event)|(~sP5_prd(Time,Event)&(~Event=pull|~Time=n2))))),
% 0.14/5.63 inference(NNF_transformation,[status(thm)],[f215])).
% 0.14/5.63 fof(f217,plain,(
% 0.14/5.63 (![Event,Time]: (~sP2_prd(Time,Event)|(sP5_prd(Time,Event)|(Event=pull&Time=n2))))&(![Event,Time]: (sP2_prd(Time,Event)|(~sP5_prd(Time,Event)&(~Event=pull|~Time=n2))))),
% 0.14/5.63 inference(miniscoping,[status(thm)],[f216])).
% 0.14/5.63 fof(f219,plain,(
% 0.14/5.63 ![X0,X1]: (~sP2_prd(X0,X1)|sP5_prd(X0,X1)|X0=n2)),
% 0.14/5.63 inference(cnf_transformation,[status(thm)],[f217])).
% 0.14/5.63 fof(f220,plain,(
% 0.14/5.63 ![X0,X1]: (sP2_prd(X0,X1)|~sP5_prd(X0,X1))),
% 0.14/5.63 inference(cnf_transformation,[status(thm)],[f217])).
% 0.14/5.63 fof(f237,plain,(
% 0.14/5.63 ![Event,Time]: ((~sP5_prd(Time,Event)|((Event=push&Time=n0)|(Event=pull&Time=n1)))&(sP5_prd(Time,Event)|((~Event=push|~Time=n0)&(~Event=pull|~Time=n1))))),
% 0.14/5.63 inference(NNF_transformation,[status(thm)],[f214])).
% 0.14/5.63 fof(f238,plain,(
% 0.14/5.63 (![Event,Time]: (~sP5_prd(Time,Event)|((Event=push&Time=n0)|(Event=pull&Time=n1))))&(![Event,Time]: (sP5_prd(Time,Event)|((~Event=push|~Time=n0)&(~Event=pull|~Time=n1))))),
% 0.14/5.63 inference(miniscoping,[status(thm)],[f237])).
% 0.14/5.63 fof(f241,plain,(
% 0.14/5.63 ![X0,X1]: (~sP5_prd(X0,X1)|X0=n0|X1=pull)),
% 0.14/5.63 inference(cnf_transformation,[status(thm)],[f238])).
% 0.14/5.63 fof(f244,plain,(
% 0.14/5.63 ![X0,X1]: (sP5_prd(X0,X1)|~X1=pull|~X0=n1)),
% 0.14/5.63 inference(cnf_transformation,[status(thm)],[f238])).
% 0.14/5.63 fof(f272,plain,(
% 0.14/5.63 ![X0]: (less_or_equal(X0,X0))),
% 0.14/5.63 inference(destructive_equality_resolution,[status(thm)],[f147])).
% 0.14/5.63 fof(f274,plain,(
% 0.14/5.63 ![X0]: (sP0_prd(X0,backwards,pull)|happens(push,X0))),
% 0.14/5.63 inference(destructive_equality_resolution,[status(thm)],[f204])).
% 0.14/5.63 fof(f280,plain,(
% 0.14/5.63 sP5_prd(n1,pull)),
% 0.14/5.63 inference(destructive_equality_resolution,[status(thm)],[f244])).
% 0.14/5.63 fof(f285,plain,(
% 0.14/5.63 less(n1,n2)),
% 0.14/5.63 inference(resolution,[status(thm)],[f272,f157])).
% 0.14/5.63 fof(f292,plain,(
% 0.14/5.63 ![X0,X1]: (~happens(X0,n1)|~initiates(X0,X1,n1)|holdsAt(X1,n2))),
% 0.14/5.63 inference(paramodulation,[status(thm)],[f136,f90])).
% 0.14/5.63 fof(f349,plain,(
% 0.14/5.63 sP2_prd(n1,pull)),
% 0.14/5.63 inference(resolution,[status(thm)],[f220,f280])).
% 0.14/5.63 fof(f351,plain,(
% 0.14/5.63 happens(pull,n1)),
% 0.14/5.63 inference(resolution,[status(thm)],[f349,f126])).
% 0.14/5.63 fof(f352,plain,(
% 0.14/5.63 ![X0]: (~less(X0,n1)|less(X0,n0)|X0=n0)),
% 0.14/5.63 inference(resolution,[status(thm)],[f152,f145])).
% 0.14/5.63 fof(f353,plain,(
% 0.14/5.63 ![X0]: (~less(X0,n1)|X0=n0)),
% 0.14/5.63 inference(forward_subsumption_resolution,[status(thm)],[f352,f149])).
% 0.14/5.63 fof(f356,plain,(
% 0.14/5.63 less(n0,n1)),
% 0.14/5.63 inference(resolution,[status(thm)],[f153,f272])).
% 0.14/5.63 fof(f380,plain,(
% 0.14/5.63 ![X0]: (~initiates(pull,X0,n1)|holdsAt(X0,n2))),
% 0.14/5.63 inference(resolution,[status(thm)],[f351,f292])).
% 0.14/5.63 fof(f526,plain,(
% 0.14/5.63 ![X0]: (happens(push,X0)|initiates(pull,backwards,X0))),
% 0.14/5.63 inference(resolution,[status(thm)],[f274,f108])).
% 0.14/5.63 fof(f640,plain,(
% 0.14/5.63 ![X0,X1]: (X0=n0|X1=pull|~sP2_prd(X0,X1)|X0=n2)),
% 0.14/5.63 inference(resolution,[status(thm)],[f241,f219])).
% 0.14/5.63 fof(f1256,plain,(
% 0.14/5.63 happens(push,n1)|holdsAt(backwards,n2)),
% 0.14/5.63 inference(resolution,[status(thm)],[f526,f380])).
% 0.14/5.63 fof(f1267,plain,(
% 0.14/5.63 happens(push,n1)),
% 0.14/5.63 inference(forward_subsumption_resolution,[status(thm)],[f1256,f195])).
% 0.14/5.63 fof(f1285,plain,(
% 0.14/5.63 sP2_prd(n1,push)|n1=n2),
% 0.14/5.63 inference(resolution,[status(thm)],[f1267,f125])).
% 0.14/5.63 fof(f1490,plain,(
% 0.14/5.63 n1=n2|n1=n0|push=pull|n1=n2),
% 0.14/5.63 inference(resolution,[status(thm)],[f1285,f640])).
% 0.14/5.63 fof(f1494,plain,(
% 0.14/5.63 n1=n2|n1=n0|push=pull),
% 0.14/5.63 inference(duplicate_literals_removal,[status(thm)],[f1490])).
% 0.14/5.63 fof(f1495,plain,(
% 0.14/5.63 n1=n2|n1=n0),
% 0.14/5.63 inference(forward_subsumption_resolution,[status(thm)],[f1494,f128])).
% 0.14/5.63 fof(f1666,plain,(
% 0.14/5.63 less(n1,n1)|n1=n0),
% 0.14/5.63 inference(paramodulation,[status(thm)],[f1495,f285])).
% 0.14/5.63 fof(f1673,plain,(
% 0.14/5.63 n1=n0),
% 0.14/5.63 inference(forward_subsumption_resolution,[status(thm)],[f1666,f353])).
% 0.14/5.63 fof(f1793,plain,(
% 0.14/5.63 less(n0,n0)),
% 0.14/5.63 inference(backward_demodulation,[status(thm)],[f1673,f356])).
% 0.14/5.63 fof(f1983,plain,(
% 0.14/5.63 $false),
% 0.14/5.63 inference(forward_subsumption_resolution,[status(thm)],[f1793,f149])).
% 0.14/5.63 % SZS output end CNFRefutation for theBenchmark.p
% 0.14/5.65 % Elapsed time: 0.251014 seconds
% 0.14/5.65 % CPU time: 1.626246 seconds
% 0.14/5.65 % Total memory used: 129.116 MB
% 0.14/5.65 % Net memory used: 126.632 MB
%------------------------------------------------------------------------------