About the Execution of ITS-Tools for SharedMemory-PT-000005
Execution Summary | |||||
Max Memory Used (MB) |
Time wait (ms) | CPU Usage (ms) | I/O Wait (ms) | Computed Result | Execution Status |
15740.500 | 11032.00 | 26162.00 | 296.70 | TFFTTTTTFTFFFFTT | normal |
Execution Chart
We display below the execution chart for this examination (boot time has been removed).
Trace from the execution
Formatting '/data/fko/mcc2020-input.r156-oct2-158972914200547.qcow2', fmt=qcow2 size=4294967296 backing_file=/data/fko/mcc2020-input.qcow2 cluster_size=65536 lazy_refcounts=off refcount_bits=16
Waiting for the VM to be ready (probing ssh)
........................
=====================================================================
Generated by BenchKit 2-4028
Executing tool itstools
Input is SharedMemory-PT-000005, examination is CTLCardinality
Time confinement is 3600 seconds
Memory confinement is 16384 MBytes
Number of cores is 4
Run identifier is r156-oct2-158972914200547
=====================================================================
--------------------
preparation of the directory to be used:
/home/mcc/execution
total 368K
-rw-r--r-- 1 mcc users 5.6K Apr 27 15:14 CTLCardinality.txt
-rw-r--r-- 1 mcc users 23K Apr 27 15:14 CTLCardinality.xml
-rw-r--r-- 1 mcc users 8.8K Apr 27 15:14 CTLFireability.txt
-rw-r--r-- 1 mcc users 33K Apr 27 15:14 CTLFireability.xml
-rw-r--r-- 1 mcc users 4.0K Apr 27 15:14 GenericPropertiesDefinition.xml
-rw-r--r-- 1 mcc users 6.1K Apr 27 15:14 GenericPropertiesVerdict.xml
-rw-r--r-- 1 mcc users 5.0K Apr 27 15:14 LTLCardinality.txt
-rw-r--r-- 1 mcc users 26K Apr 28 14:02 LTLCardinality.xml
-rw-r--r-- 1 mcc users 8.5K Apr 27 15:14 LTLFireability.txt
-rw-r--r-- 1 mcc users 39K Apr 28 14:02 LTLFireability.xml
-rw-r--r-- 1 mcc users 6.6K Apr 27 15:14 ReachabilityCardinality.txt
-rw-r--r-- 1 mcc users 25K Apr 27 15:14 ReachabilityCardinality.xml
-rw-r--r-- 1 mcc users 8.3K Apr 27 15:14 ReachabilityFireability.txt
-rw-r--r-- 1 mcc users 31K Apr 27 15:14 ReachabilityFireability.xml
-rw-r--r-- 1 mcc users 2.2K Apr 27 15:14 UpperBounds.txt
-rw-r--r-- 1 mcc users 4.7K Apr 27 15:14 UpperBounds.xml
-rw-r--r-- 1 mcc users 5 Apr 27 15:14 equiv_col
-rw-r--r-- 1 mcc users 7 Apr 27 15:14 instance
-rw-r--r-- 1 mcc users 6 Apr 27 15:14 iscolored
-rw-r--r-- 1 mcc users 83K Apr 27 15:14 model.pnml
--------------------
content from stdout:
=== Data for post analysis generated by BenchKit (invocation template)
The expected result is a vector of booleans
BOOL_VECTOR
here is the order used to build the result vector(from text file)
FORMULA_NAME SharedMemory-PT-000005-CTLCardinality-00
FORMULA_NAME SharedMemory-PT-000005-CTLCardinality-01
FORMULA_NAME SharedMemory-PT-000005-CTLCardinality-02
FORMULA_NAME SharedMemory-PT-000005-CTLCardinality-03
FORMULA_NAME SharedMemory-PT-000005-CTLCardinality-04
FORMULA_NAME SharedMemory-PT-000005-CTLCardinality-05
FORMULA_NAME SharedMemory-PT-000005-CTLCardinality-06
FORMULA_NAME SharedMemory-PT-000005-CTLCardinality-07
FORMULA_NAME SharedMemory-PT-000005-CTLCardinality-08
FORMULA_NAME SharedMemory-PT-000005-CTLCardinality-09
FORMULA_NAME SharedMemory-PT-000005-CTLCardinality-10
FORMULA_NAME SharedMemory-PT-000005-CTLCardinality-11
FORMULA_NAME SharedMemory-PT-000005-CTLCardinality-12
FORMULA_NAME SharedMemory-PT-000005-CTLCardinality-13
FORMULA_NAME SharedMemory-PT-000005-CTLCardinality-14
FORMULA_NAME SharedMemory-PT-000005-CTLCardinality-15
=== Now, execution of the tool begins
BK_START 1589913214088
[2020-05-19 18:33:40] [INFO ] Running its-tools with arguments : [-pnfolder, /home/mcc/execution, -examination, CTLCardinality, -z3path, /home/mcc/BenchKit//z3/bin/z3, -yices2path, /home/mcc/BenchKit//yices/bin/yices, -its, -ltsminpath, /home/mcc/BenchKit//lts_install_dir/, -greatspnpath, /home/mcc/BenchKit//greatspn/, -order, META, -manyOrder, -smt, -timeout, 3600]
[2020-05-19 18:33:40] [INFO ] Parsing pnml file : /home/mcc/execution/model.pnml
[2020-05-19 18:33:40] [INFO ] Load time of PNML (sax parser for PT used): 92 ms
[2020-05-19 18:33:40] [INFO ] Transformed 41 places.
[2020-05-19 18:33:40] [INFO ] Transformed 55 transitions.
[2020-05-19 18:33:40] [INFO ] Found NUPN structural information;
[2020-05-19 18:33:40] [INFO ] Parsed PT model containing 41 places and 55 transitions in 153 ms.
Parsed 16 properties from file /home/mcc/execution/CTLCardinality.xml in 25 ms.
Incomplete random walk after 100000 steps, including 0 resets, run finished after 321 ms. (steps per millisecond=311 ) properties seen :[0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1]
// Phase 1: matrix 55 rows 41 cols
[2020-05-19 18:33:41] [INFO ] Computed 11 place invariants in 8 ms
[2020-05-19 18:33:41] [INFO ] [Real]Absence check using 11 positive place invariants in 109 ms returned unsat
[2020-05-19 18:33:41] [INFO ] [Real]Absence check using 11 positive place invariants in 63 ms returned unsat
[2020-05-19 18:33:41] [INFO ] [Real]Absence check using 11 positive place invariants in 42 ms returned unsat
[2020-05-19 18:33:41] [INFO ] [Real]Absence check using 11 positive place invariants in 14 ms returned sat
[2020-05-19 18:33:41] [INFO ] [Real]Adding state equation constraints to refine reachable states.
[2020-05-19 18:33:41] [INFO ] [Real]Absence check using state equation in 195 ms returned sat
[2020-05-19 18:33:41] [INFO ] Solution in real domain found non-integer solution.
[2020-05-19 18:33:42] [INFO ] [Nat]Absence check using 11 positive place invariants in 70 ms returned unsat
Successfully simplified 4 atomic propositions for a total of 4 simplifications.
[2020-05-19 18:33:42] [INFO ] Initial state reduction rules for CTL removed 8 formulas.
[2020-05-19 18:33:42] [INFO ] Flatten gal took : 112 ms
[2020-05-19 18:33:42] [INFO ] Initial state reduction rules for CTL removed 8 formulas.
[2020-05-19 18:33:42] [INFO ] Flatten gal took : 57 ms
FORMULA SharedMemory-PT-000005-CTLCardinality-13 FALSE TECHNIQUES TOPOLOGICAL INITIAL_STATE
FORMULA SharedMemory-PT-000005-CTLCardinality-11 FALSE TECHNIQUES TOPOLOGICAL INITIAL_STATE
FORMULA SharedMemory-PT-000005-CTLCardinality-10 FALSE TECHNIQUES TOPOLOGICAL INITIAL_STATE
FORMULA SharedMemory-PT-000005-CTLCardinality-08 FALSE TECHNIQUES TOPOLOGICAL INITIAL_STATE
FORMULA SharedMemory-PT-000005-CTLCardinality-07 TRUE TECHNIQUES TOPOLOGICAL INITIAL_STATE
FORMULA SharedMemory-PT-000005-CTLCardinality-04 TRUE TECHNIQUES TOPOLOGICAL INITIAL_STATE
FORMULA SharedMemory-PT-000005-CTLCardinality-02 FALSE TECHNIQUES TOPOLOGICAL INITIAL_STATE
FORMULA SharedMemory-PT-000005-CTLCardinality-01 FALSE TECHNIQUES TOPOLOGICAL INITIAL_STATE
[2020-05-19 18:33:42] [INFO ] Applying decomposition
[2020-05-19 18:33:42] [INFO ] Flatten gal took : 20 ms
Converted graph to binary with : CommandLine [args=[/home/mcc/BenchKit/itstools/plugins/fr.lip6.move.gal.louvain.binaries_1.0.0.202005100927/bin/convert-linux64, -i, /tmp/graph15932939602784976476.txt, -o, /tmp/graph15932939602784976476.bin, -w, /tmp/graph15932939602784976476.weights], workingDir=null]
Built communities with : CommandLine [args=[/home/mcc/BenchKit/itstools/plugins/fr.lip6.move.gal.louvain.binaries_1.0.0.202005100927/bin/louvain-linux64, /tmp/graph15932939602784976476.bin, -l, -1, -v, -w, /tmp/graph15932939602784976476.weights, -q, 0, -e, 0.001], workingDir=null]
[2020-05-19 18:33:43] [INFO ] Decomposing Gal with order
[2020-05-19 18:33:43] [INFO ] Rewriting arrays to variables to allow decomposition.
[2020-05-19 18:33:43] [INFO ] Removed a total of 30 redundant transitions.
[2020-05-19 18:33:43] [INFO ] Flatten gal took : 151 ms
[2020-05-19 18:33:43] [INFO ] Fuse similar labels procedure discarded/fused a total of 40 labels/synchronizations in 2 ms.
[2020-05-19 18:33:43] [INFO ] Time to serialize gal into /home/mcc/execution/CTLCardinality.pnml.gal : 1 ms
[2020-05-19 18:33:43] [INFO ] Time to serialize properties into /home/mcc/execution/CTLCardinality.ctl : 0 ms
Invoking ITS tools like this :CommandLine [args=[/home/mcc/BenchKit/itstools/plugins/fr.lip6.move.gal.itstools.binaries_1.0.0.202005100927/bin/its-ctl-linux64, --gc-threshold, 2000000, --quiet, -i, /home/mcc/execution/CTLCardinality.pnml.gal, -t, CGAL, -ctl, /home/mcc/execution/CTLCardinality.ctl, --gen-order, FOLLOW], workingDir=/home/mcc/execution]
its-ctl command run as :
/home/mcc/BenchKit/itstools/plugins/fr.lip6.move.gal.itstools.binaries_1.0.0.202005100927/bin/its-ctl-linux64 --gc-threshold 2000000 --quiet -i /home/mcc/execution/CTLCardinality.pnml.gal -t CGAL -ctl /home/mcc/execution/CTLCardinality.ctl --gen-order FOLLOW
No direction supplied, using forward translation only.
Parsed 8 CTL formulae.
Model ,|S| ,Time ,Mem(kb) ,fin. SDD ,fin. DDD ,peak SDD ,peak DDD ,SDD Hom ,SDD cache peak ,DDD Hom ,DDD cachepeak ,SHom cache
reachable,1863,0.047546,4700,2,364,5,2217,6,0,242,801,0
Converting to forward existential form...Done !
original formula: !(AX(FALSE))
=> equivalent forward existential formula: [(EY(Init) * !(FALSE))] != FALSE
(forward)formula 0,1,0.056718,4700,1,0,6,2217,7,1,314,801,1
FORMULA SharedMemory-PT-000005-CTLCardinality-00 TRUE TECHNIQUES DECISION_DIAGRAMS TOPOLOGICAL USE_NUPN
Formula is TRUE !
***************************************
original formula: AX(((((((((((((((((((((gu0.Ext_Mem_Acc_2_1+gu0.Ext_Mem_Acc_3_1)+gu0.Ext_Mem_Acc_4_1)+gu0.Ext_Mem_Acc_5_1)+gu0.Ext_Mem_Acc_1_2)+gu0.Ext_Mem_Acc_3_2)+gu0.Ext_Mem_Acc_4_2)+gu0.Ext_Mem_Acc_5_2)+gu0.Ext_Mem_Acc_1_3)+gu0.Ext_Mem_Acc_2_3)+gu0.Ext_Mem_Acc_4_3)+gu0.Ext_Mem_Acc_5_3)+gu0.Ext_Mem_Acc_1_4)+gu0.Ext_Mem_Acc_3_4)+gu0.Ext_Mem_Acc_2_4)+gu0.Ext_Mem_Acc_1_5)+gu0.Ext_Mem_Acc_5_4)+gu0.Ext_Mem_Acc_3_5)+gu0.Ext_Mem_Acc_2_5)+gu0.Ext_Mem_Acc_4_5)<=((((gu1.Queue_1+gu1.Queue_2)+gu1.Queue_5)+gu1.Queue_3)+gu1.Queue_4)))
=> equivalent forward existential formula: [(EY(Init) * !(((((((((((((((((((((gu0.Ext_Mem_Acc_2_1+gu0.Ext_Mem_Acc_3_1)+gu0.Ext_Mem_Acc_4_1)+gu0.Ext_Mem_Acc_5_1)+gu0.Ext_Mem_Acc_1_2)+gu0.Ext_Mem_Acc_3_2)+gu0.Ext_Mem_Acc_4_2)+gu0.Ext_Mem_Acc_5_2)+gu0.Ext_Mem_Acc_1_3)+gu0.Ext_Mem_Acc_2_3)+gu0.Ext_Mem_Acc_4_3)+gu0.Ext_Mem_Acc_5_3)+gu0.Ext_Mem_Acc_1_4)+gu0.Ext_Mem_Acc_3_4)+gu0.Ext_Mem_Acc_2_4)+gu0.Ext_Mem_Acc_1_5)+gu0.Ext_Mem_Acc_5_4)+gu0.Ext_Mem_Acc_3_5)+gu0.Ext_Mem_Acc_2_5)+gu0.Ext_Mem_Acc_4_5)<=((((gu1.Queue_1+gu1.Queue_2)+gu1.Queue_5)+gu1.Queue_3)+gu1.Queue_4))))] = FALSE
(forward)formula 1,1,0.096783,5080,1,0,9,2217,9,3,882,801,2
FORMULA SharedMemory-PT-000005-CTLCardinality-03 TRUE TECHNIQUES DECISION_DIAGRAMS TOPOLOGICAL USE_NUPN
Formula is TRUE !
***************************************
original formula: !(AX((((((gu1.OwnMemAcc_1+gu1.OwnMemAcc_4)+gu1.OwnMemAcc_5)+gu1.OwnMemAcc_2)+gu1.OwnMemAcc_3)<=((((gu1.Queue_1+gu1.Queue_2)+gu1.Queue_5)+gu1.Queue_3)+gu1.Queue_4))))
=> equivalent forward existential formula: [(EY(Init) * !((((((gu1.OwnMemAcc_1+gu1.OwnMemAcc_4)+gu1.OwnMemAcc_5)+gu1.OwnMemAcc_2)+gu1.OwnMemAcc_3)<=((((gu1.Queue_1+gu1.Queue_2)+gu1.Queue_5)+gu1.Queue_3)+gu1.Queue_4))))] != FALSE
(forward)formula 2,1,0.131163,5608,1,0,13,2516,11,5,1024,2156,3
FORMULA SharedMemory-PT-000005-CTLCardinality-05 TRUE TECHNIQUES DECISION_DIAGRAMS TOPOLOGICAL USE_NUPN
Formula is TRUE !
***************************************
original formula: EG((((((gu1.OwnMemAcc_1+gu1.OwnMemAcc_4)+gu1.OwnMemAcc_5)+gu1.OwnMemAcc_2)+gu1.OwnMemAcc_3)<=((((gu1.Queue_1+gu1.Queue_2)+gu1.Queue_5)+gu1.Queue_3)+gu1.Queue_4)))
=> equivalent forward existential formula: [FwdG(Init,(((((gu1.OwnMemAcc_1+gu1.OwnMemAcc_4)+gu1.OwnMemAcc_5)+gu1.OwnMemAcc_2)+gu1.OwnMemAcc_3)<=((((gu1.Queue_1+gu1.Queue_2)+gu1.Queue_5)+gu1.Queue_3)+gu1.Queue_4)))] != FALSE
Hit Full ! (commute/partial/dont) 5/0/20
(forward)formula 3,1,0.276967,8512,1,0,13,15680,22,6,1799,11450,10
FORMULA SharedMemory-PT-000005-CTLCardinality-06 TRUE TECHNIQUES DECISION_DIAGRAMS TOPOLOGICAL USE_NUPN
Formula is TRUE !
***************************************
original formula: EG(((gu0.Ext_Mem_Acc_4_1!=1)||((gu0.Ext_Mem_Acc_5_1!=0)&&(gu0.Ext_Mem_Acc_1_5!=1))))
=> equivalent forward existential formula: [FwdG(Init,((gu0.Ext_Mem_Acc_4_1!=1)||((gu0.Ext_Mem_Acc_5_1!=0)&&(gu0.Ext_Mem_Acc_1_5!=1))))] != FALSE
Hit Full ! (commute/partial/dont) 19/0/6
(forward)formula 4,1,0.298225,8776,1,0,14,16244,29,7,1841,12248,14
FORMULA SharedMemory-PT-000005-CTLCardinality-09 TRUE TECHNIQUES DECISION_DIAGRAMS TOPOLOGICAL USE_NUPN
Formula is TRUE !
***************************************
original formula: !(EF(EG(((gu0.Ext_Mem_Acc_1_5==0)||(gu0.Ext_Bus==1)))))
=> equivalent forward existential formula: [FwdG(FwdU(Init,TRUE),((gu0.Ext_Mem_Acc_1_5==0)||(gu0.Ext_Bus==1)))] = FALSE
Hit Full ! (commute/partial/dont) 15/0/10
(forward)formula 5,0,0.34918,9040,1,0,15,16514,36,7,1876,12718,18
FORMULA SharedMemory-PT-000005-CTLCardinality-12 FALSE TECHNIQUES DECISION_DIAGRAMS TOPOLOGICAL USE_NUPN
Formula is FALSE !
***************************************
original formula: AX(!(AG(((gu1.Active_3==0)||(gu0.Ext_Mem_Acc_2_4==1)))))
=> equivalent forward existential formula: [(EY(Init) * !(E(TRUE U !(((gu1.Active_3==0)||(gu0.Ext_Mem_Acc_2_4==1))))))] = FALSE
Reverse transition relation is exact ! Faster fixpoint algorithm enabled.
(forward)formula 6,1,0.373899,9304,1,0,16,17573,42,7,1912,13067,21
FORMULA SharedMemory-PT-000005-CTLCardinality-14 TRUE TECHNIQUES DECISION_DIAGRAMS TOPOLOGICAL USE_NUPN
Formula is TRUE !
***************************************
original formula: !(AX(FALSE))
=> equivalent forward existential formula: [(EY(Init) * !(FALSE))] != FALSE
(forward)formula 7,1,0.373959,9304,1,0,16,17573,42,7,1912,13067,21
FORMULA SharedMemory-PT-000005-CTLCardinality-15 TRUE TECHNIQUES DECISION_DIAGRAMS TOPOLOGICAL USE_NUPN
Formula is TRUE !
***************************************
BK_STOP 1589913225120
--------------------
content from stderr:
+ export BINDIR=/home/mcc/BenchKit/
+ BINDIR=/home/mcc/BenchKit/
++ pwd
+ export MODEL=/home/mcc/execution
+ MODEL=/home/mcc/execution
+ [[ CTLCardinality = StateSpace ]]
+ /home/mcc/BenchKit//runeclipse.sh /home/mcc/execution CTLCardinality -its -ltsminpath /home/mcc/BenchKit//lts_install_dir/ -greatspnpath /home/mcc/BenchKit//greatspn/ -order META -manyOrder -smt -timeout 3600
+ ulimit -s 65536
+ [[ -z '' ]]
+ export LTSMIN_MEM_SIZE=8589934592
+ LTSMIN_MEM_SIZE=8589934592
+ /home/mcc/BenchKit//itstools/its-tools -data /home/mcc/execution/workspace -pnfolder /home/mcc/execution -examination CTLCardinality -z3path /home/mcc/BenchKit//z3/bin/z3 -yices2path /home/mcc/BenchKit//yices/bin/yices -its -ltsminpath /home/mcc/BenchKit//lts_install_dir/ -greatspnpath /home/mcc/BenchKit//greatspn/ -order META -manyOrder -smt -timeout 3600 -vmargs -Dosgi.locking=none -Declipse.stateSaveDelayInterval=-1 -Dosgi.configuration.area=/tmp/.eclipse -Xss128m -Xms40m -Xmx16000m -Dfile.encoding=UTF-8 -Dosgi.requiredJavaVersion=1.6
Sequence of Actions to be Executed by the VM
This is useful if one wants to reexecute the tool in the VM from the submitted image disk.
set -x
# this is for BenchKit: configuration of major elements for the test
export BK_INPUT="SharedMemory-PT-000005"
export BK_EXAMINATION="CTLCardinality"
export BK_TOOL="itstools"
export BK_RESULT_DIR="/tmp/BK_RESULTS/OUTPUTS"
export BK_TIME_CONFINEMENT="3600"
export BK_MEMORY_CONFINEMENT="16384"
# this is specific to your benchmark or test
export BIN_DIR="$HOME/BenchKit/bin"
# remove the execution directoty if it exists (to avoid increse of .vmdk images)
if [ -d execution ] ; then
rm -rf execution
fi
# this is for BenchKit: explicit launching of the test
echo "====================================================================="
echo " Generated by BenchKit 2-4028"
echo " Executing tool itstools"
echo " Input is SharedMemory-PT-000005, examination is CTLCardinality"
echo " Time confinement is $BK_TIME_CONFINEMENT seconds"
echo " Memory confinement is 16384 MBytes"
echo " Number of cores is 4"
echo " Run identifier is r156-oct2-158972914200547"
echo "====================================================================="
echo
echo "--------------------"
echo "preparation of the directory to be used:"
tar xzf /home/mcc/BenchKit/INPUTS/SharedMemory-PT-000005.tgz
mv SharedMemory-PT-000005 execution
cd execution
if [ "CTLCardinality" = "ReachabilityDeadlock" ] || [ "CTLCardinality" = "UpperBounds" ] || [ "CTLCardinality" = "QuasiLiveness" ] || [ "CTLCardinality" = "StableMarking" ] || [ "CTLCardinality" = "Liveness" ] || [ "CTLCardinality" = "OneSafe" ] || [ "CTLCardinality" = "StateSpace" ]; then
rm -f GenericPropertiesVerdict.xml
fi
pwd
ls -lh
echo
echo "--------------------"
echo "content from stdout:"
echo
echo "=== Data for post analysis generated by BenchKit (invocation template)"
echo
if [ "CTLCardinality" = "UpperBounds" ] ; then
echo "The expected result is a vector of positive values"
echo NUM_VECTOR
elif [ "CTLCardinality" != "StateSpace" ] ; then
echo "The expected result is a vector of booleans"
echo BOOL_VECTOR
else
echo "no data necessary for post analysis"
fi
echo
if [ -f "CTLCardinality.txt" ] ; then
echo "here is the order used to build the result vector(from text file)"
for x in $(grep Property CTLCardinality.txt | cut -d ' ' -f 2 | sort -u) ; do
echo "FORMULA_NAME $x"
done
elif [ -f "CTLCardinality.xml" ] ; then # for cunf (txt files deleted;-)
echo echo "here is the order used to build the result vector(from xml file)"
for x in $(grep '
echo "FORMULA_NAME $x"
done
elif [ "CTLCardinality" = "ReachabilityDeadlock" ] || [ "CTLCardinality" = "QuasiLiveness" ] || [ "CTLCardinality" = "StableMarking" ] || [ "CTLCardinality" = "Liveness" ] || [ "CTLCardinality" = "OneSafe" ] ; then
echo "FORMULA_NAME CTLCardinality"
fi
echo
echo "=== Now, execution of the tool begins"
echo
echo -n "BK_START "
date -u +%s%3N
echo
timeout -s 9 $BK_TIME_CONFINEMENT bash -c "/home/mcc/BenchKit/BenchKit_head.sh 2> STDERR ; echo ; echo -n \"BK_STOP \" ; date -u +%s%3N"
if [ $? -eq 137 ] ; then
echo
echo "BK_TIME_CONFINEMENT_REACHED"
fi
echo
echo "--------------------"
echo "content from stderr:"
echo
cat STDERR ;