(***********************************************************************)
(*
- Time-stamp: <Last modified on 2013-04-24 18:10:13 CEST by Kim Nguyen>
+ Time-stamp: <Last modified on 2013-04-24 23:14:46 CEST by Kim Nguyen>
*)
INCLUDE "utils.ml"
(** optimization infos,
not taken into account during hashconsing *)
mutable round : int;
- mutable unstable_subtree : bool;
}
module Config = Hcons.Make(struct
todo = TransList.nil;
summary = dummy_summary;
round = 0;
- unstable_subtree = true;
}
(***********************************************************************)
(*
- Time-stamp: <Last modified on 2013-04-24 18:10:18 CEST by Kim Nguyen>
+ Time-stamp: <Last modified on 2013-04-24 23:19:41 CEST by Kim Nguyen>
*)
type predicate =
todo : TransList.t;
summary : node_summary;
mutable round : int;
- mutable unstable_subtree : bool;
}
module Config : Hcons.S with type data = config
--- /dev/null
+type t = { length : int;
+ bits : string; }
+
+let create size =
+ { length = size;
+ bits = String.make (1 + size / 8) '\000'
+ }
+
+let unsafe_get v n =
+ let i = n / 8
+ and j = n mod 8 in
+ (((Char.code (String.unsafe_get v.bits i)) lsr j) land 1) == 1
+
+
+let unsafe_set v n (b:bool) =
+ let x : int = Obj.magic b in
+ let i = n / 8
+ and j = n mod 8 in
+ let m = 1 lsl j in
+ let w = Char.code (String.unsafe_get v.bits i) in
+ let w = (w land lnot m) lor (~-x land m) in
+ String.unsafe_set v.bits i (Char.unsafe_chr (w land 0xff))
+;;
+
+let get v n =
+ if n < 0 || n >= v.length then failwith "Bitvector.get"
+ else unsafe_get v n
+;;
+
+let set v n b =
+ if n < 0 || n >= v.length then failwith "Bitvector.set"
+ else unsafe_set v n b
+;;
--- /dev/null
+type t
+
+val create : int -> t
+val set : t -> int -> bool -> unit
+val get : t -> int -> bool
(***********************************************************************)
(*
- Time-stamp: <Last modified on 2013-04-24 21:54:43 CEST by Kim Nguyen>
+ Time-stamp: <Last modified on 2013-04-24 23:24:11 CEST by Kim Nguyen>
*)
INCLUDE "utils.ml"
let config = config.Ata.Config.node in
let oldi = config.Ata.round in
Html.trace (T.preorder tree node) i oldi
- "%s<br/>sat: %a<br/>unsat: %a<br/>todo: %around: %i<br/>unstable_subtree: %b<br/>"
+ "node: %i<br/>%s<br/>sat: %a<br/>unsat: %a<br/>todo: %around: %i<br/>"
+ ((T.preorder tree node):>int)
msg
StateSet.print config.Ata.sat
StateSet.print config.Ata.unsat
- (Ata.TransList.print ~sep:"<br/>") config.Ata.todo oldi config.Ata.unstable_subtree
-
+ (Ata.TransList.print ~sep:"<br/>") config.Ata.todo oldi
type cache = StateSet.t Cache.N1.t
let get c t n = Cache.N1.find c (T.preorder t n)
let fc = T.first_child tree node in
let ns = T.next_sibling tree node in
let tag = T.tag tree node in
- let config0 =
+ let _, config0 =
let c = get cache tree node in
if c == Cache.N1.dummy cache then
- Ata.Config.make
+ true,Ata.Config.make
{ c.Ata.Config.node with
Ata.todo = Ata.get_trans auto tag auto.Ata.states;
summary = Ata.node_summary
TRACE(html tree node _i config0 "Entering node");
- let ps = get cache tree parent in
- let fcs = get cache tree fc in
- let nss = get cache tree ns in
+ let _, ps = get cache tree parent in
+ let old_unstable_left, fcs = get cache tree fc in
+ let old_unstable_right, nss = get cache tree ns in
let config1 = Ata.eval_trans auto fcs nss ps config0 in
TRACE(html tree node _i config1 "Updating transitions");
- if config0 != config1 then set cache tree node config1 _i;
- if not Ata.(fcs.Config.node.unstable_subtree) then
- Printf.eprintf "Could skip left subtree!%!";
- let unstable_left = Ata.(fcs.Config.node.unstable_subtree) && loop fc in
- let fcs1 = get cache tree fc in
+ if config0 != config1 then set cache tree node (true,config1) _i;
+ let unstable_left = old_unstable_left && loop fc in
+ let _, fcs1 = get cache tree fc in
let config2 = Ata.eval_trans auto fcs1 nss ps config1 in
TRACE(html tree node _i config2 "Updating transitions (after first-child)");
- if config1 != config2 then set cache tree node config2 _i;
- if not Ata.(nss.Config.node.unstable_subtree) then
- Printf.eprintf "Could skip right subtree!%!";
- let unstable_right = Ata.(nss.Config.node.unstable_subtree) && loop ns in
- let nss1 = get cache tree ns in
+ if config1 != config2 then set cache tree node (true, config2) _i;
+ let unstable_right = old_unstable_right && loop ns in
+ let _, nss1 = get cache tree ns in
let config3 = Ata.eval_trans auto fcs1 nss1 ps config2 in
TRACE(html tree node _i config3 "Updating transitions (after next-sibling)");
- if config2 != config3 then set cache tree node config3 _i;
+ if config2 != config3 then set cache tree node (true, config3) _i;
let unstable =
unstable_left
|| unstable_right
|| Ata.(TransList.nil != config3.Config.node.todo)
in
- if Ata.(unstable && not config3.Config.node.unstable_subtree) then
- Ata.(config3.Config.node.unstable_subtree <- true);
+ if Ata.(config3.Config.node.unstable_subtree) && not unstable then
+ Ata.(config3.Config.node.unstable_subtree <- false);
unstable
end
in
let eval auto tree node =
let cache = Cache.N1.create
- Ata.(Config.make { sat = StateSet.empty;
- unsat = StateSet.empty;
- todo = TransList.nil;
- summary = dummy_summary;
- round = ~-1;
- unstable_subtree = true;
- })
+ true , Ata.(Config.make { sat = StateSet.empty;
+ unsat = StateSet.empty;
+ todo = TransList.nil;
+ summary = dummy_summary;
+ round = ~-1
+ })
in
let redo = ref true in
let iter = ref 0 in
Query: A1 : //L/*
-STATS: parsing xml document: 0.273943ms
-STATS: parsing XPath query: 0.031948ms
-STATS: compiling XPath query: 0.142813ms
+STATS: parsing xml document: 0.548840ms
+STATS: parsing XPath query: 0.056982ms
+STATS: compiling XPath query: 0.301838ms
STATS: Query: /descendant-or-self::node()/child::L/child::*
STATS: Automaton:
-STATS: evaluating query: 1.357079ms
-STATS: serializing results: 1.687050ms
+STATS: evaluating query: 143.815994ms
+STATS: serializing results: 0.126839ms
STATS: 1 iterations
STATS: automaton 0, cache2: 70 entries, cache6: 809 entries
STATS: cache2: length: 105, used: 35, occupation: 0.333333
Diff: ok
-------------------------------------------
Query: A2 : //L/parent::*
-STATS: parsing xml document: 0.386000ms
-STATS: parsing XPath query: 0.052929ms
-STATS: compiling XPath query: 0.163078ms
+STATS: parsing xml document: 0.554085ms
+STATS: parsing XPath query: 0.067949ms
+STATS: compiling XPath query: 0.243902ms
STATS: Query: /descendant-or-self::node()/child::L/parent::*
STATS: Automaton:
-STATS: evaluating query: 2.043962ms
-STATS: serializing results: 1.892090ms
+STATS: evaluating query: 138.197899ms
+STATS: serializing results: 0.321150ms
STATS: 1 iterations
STATS: automaton 0, cache2: 70 entries, cache6: 1310 entries
STATS: cache2: length: 105, used: 35, occupation: 0.333333
Diff: ok
-------------------------------------------
Query: A3 : //L/descendant::*
-STATS: parsing xml document: 0.469923ms
-STATS: parsing XPath query: 0.049114ms
-STATS: compiling XPath query: 0.212193ms
+STATS: parsing xml document: 0.555992ms
+STATS: parsing XPath query: 0.060081ms
+STATS: compiling XPath query: 0.320196ms
STATS: Query: /descendant-or-self::node()/child::L/descendant::*
STATS: Automaton:
-STATS: evaluating query: 2.212048ms
-STATS: serializing results: 1.559973ms
+STATS: evaluating query: 139.024973ms
+STATS: serializing results: 0.113010ms
STATS: 1 iterations
STATS: automaton 0, cache2: 70 entries, cache6: 918 entries
STATS: cache2: length: 105, used: 35, occupation: 0.333333
Diff: ok
-------------------------------------------
Query: A4 : //L/descendant-or-self::*
-STATS: parsing xml document: 0.365973ms
-STATS: parsing XPath query: 0.047922ms
-STATS: compiling XPath query: 0.175953ms
+STATS: parsing xml document: 0.549078ms
+STATS: parsing XPath query: 0.061989ms
+STATS: compiling XPath query: 0.271082ms
STATS: Query: /descendant-or-self::node()/child::L/descendant-or-self::*
STATS: Automaton:
-STATS: evaluating query: 2.229929ms
-STATS: serializing results: 1.845121ms
+STATS: evaluating query: 135.263920ms
+STATS: serializing results: 0.138998ms
STATS: 1 iterations
STATS: automaton 0, cache2: 70 entries, cache6: 918 entries
STATS: cache2: length: 105, used: 35, occupation: 0.333333
Diff: ok
-------------------------------------------
Query: A5 : //L/ancestor::*
-STATS: parsing xml document: 0.375032ms
-STATS: parsing XPath query: 0.045061ms
-STATS: compiling XPath query: 0.174046ms
+STATS: parsing xml document: 0.556946ms
+STATS: parsing XPath query: 0.063181ms
+STATS: compiling XPath query: 0.370979ms
STATS: Query: /descendant-or-self::node()/child::L/ancestor::*
STATS: Automaton:
-STATS: evaluating query: 2.063036ms
-STATS: serializing results: 2.068996ms
+STATS: evaluating query: 136.641979ms
+STATS: serializing results: 0.174046ms
STATS: 1 iterations
STATS: automaton 0, cache2: 70 entries, cache6: 1320 entries
STATS: cache2: length: 105, used: 35, occupation: 0.333333
Diff: ok
-------------------------------------------
Query: A6 : //L/ancestor-or-self::*
-STATS: parsing xml document: 0.373840ms
-STATS: parsing XPath query: 0.046015ms
-STATS: compiling XPath query: 0.215054ms
+STATS: parsing xml document: 0.530958ms
+STATS: parsing XPath query: 0.047922ms
+STATS: compiling XPath query: 0.225067ms
STATS: Query: /descendant-or-self::node()/child::L/ancestor-or-self::*
STATS: Automaton:
-STATS: evaluating query: 2.351999ms
-STATS: serializing results: 2.168894ms
+STATS: evaluating query: 142.638922ms
+STATS: serializing results: 0.296831ms
STATS: 1 iterations
STATS: automaton 0, cache2: 70 entries, cache6: 1242 entries
STATS: cache2: length: 105, used: 35, occupation: 0.333333
Diff: ok
-------------------------------------------
Query: A7 : //L/following-sibling::*
-STATS: parsing xml document: 0.376940ms
-STATS: parsing XPath query: 0.045061ms
-STATS: compiling XPath query: 0.172138ms
+STATS: parsing xml document: 0.547886ms
+STATS: parsing XPath query: 0.061989ms
+STATS: compiling XPath query: 0.241995ms
STATS: Query: /descendant-or-self::node()/child::L/following-sibling::*
STATS: Automaton:
-STATS: evaluating query: 1.918077ms
-STATS: serializing results: 1.551867ms
+STATS: evaluating query: 128.535032ms
+STATS: serializing results: 0.105858ms
STATS: 1 iterations
STATS: automaton 0, cache2: 70 entries, cache6: 1051 entries
STATS: cache2: length: 105, used: 35, occupation: 0.333333
Diff: ok
-------------------------------------------
Query: A8 : //L/preceding-sibling::*
-STATS: parsing xml document: 0.365973ms
-STATS: parsing XPath query: 0.070810ms
-STATS: compiling XPath query: 0.162125ms
+STATS: parsing xml document: 0.547886ms
+STATS: parsing XPath query: 0.072956ms
+STATS: compiling XPath query: 0.293016ms
STATS: Query: /descendant-or-self::node()/child::L/preceding-sibling::*
STATS: Automaton:
-STATS: evaluating query: 1.935959ms
-STATS: serializing results: 1.722097ms
+STATS: evaluating query: 135.153055ms
+STATS: serializing results: 0.109911ms
STATS: 1 iterations
STATS: automaton 0, cache2: 70 entries, cache6: 1174 entries
STATS: cache2: length: 105, used: 35, occupation: 0.333333
Diff: ok
-------------------------------------------
Query: A9 : //L/following::*
-STATS: parsing xml document: 0.371933ms
-STATS: parsing XPath query: 0.046968ms
-STATS: compiling XPath query: 0.277042ms
+STATS: parsing xml document: 0.552177ms
+STATS: parsing XPath query: 0.063896ms
+STATS: compiling XPath query: 0.425100ms
STATS: Query: /descendant-or-self::node()/child::L/ancestor-or-self::node()/following-sibling::node()/descendant-or-self::*
STATS: Automaton:
-STATS: evaluating query: 6.926060ms
-STATS: serializing results: 1.893997ms
+STATS: evaluating query: 163.617134ms
+STATS: serializing results: 0.147104ms
STATS: 1 iterations
STATS: automaton 0, cache2: 70 entries, cache6: 2104 entries
STATS: cache2: length: 105, used: 35, occupation: 0.333333
Diff: ok
-------------------------------------------
Query: A10 : //L/preceding::*
-STATS: parsing xml document: 0.372887ms
-STATS: parsing XPath query: 0.053883ms
-STATS: compiling XPath query: 0.284910ms
+STATS: parsing xml document: 0.637054ms
+STATS: parsing XPath query: 0.074148ms
+STATS: compiling XPath query: 0.427008ms
STATS: Query: /descendant-or-self::node()/child::L/ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::*
STATS: Automaton:
-STATS: evaluating query: 7.807970ms
-STATS: serializing results: 1.873016ms
+STATS: evaluating query: 201.319218ms
+STATS: serializing results: 0.159025ms
STATS: 2 iterations
-STATS: automaton 0, cache2: 0 entries, cache6: 942 entries
+STATS: automaton 0, cache2: 0 entries, cache6: 941 entries
STATS: cache2: length: 0, used: 0, occupation: -nan
-STATS: cache4: length: 1077, used: 135, occupation: 0.125348
+STATS: cache4: length: 1074, used: 133, occupation: 0.123836
Diff: ok
-------------------------------------------
Query: A11 : //L/self::*
-STATS: parsing xml document: 0.367165ms
-STATS: parsing XPath query: 0.047207ms
-STATS: compiling XPath query: 0.145912ms
+STATS: parsing xml document: 0.553846ms
+STATS: parsing XPath query: 0.060081ms
+STATS: compiling XPath query: 0.231981ms
STATS: Query: /descendant-or-self::node()/child::L/self::*
STATS: Automaton:
-STATS: evaluating query: 1.688957ms
-STATS: serializing results: 1.632929ms
+STATS: evaluating query: 131.052017ms
+STATS: serializing results: 0.113964ms
STATS: 1 iterations
STATS: automaton 0, cache2: 70 entries, cache6: 837 entries
STATS: cache2: length: 105, used: 35, occupation: 0.333333
Diff: ok
-------------------------------------------
Query: A12 : //L/@id/parent::*
-STATS: parsing xml document: 0.365019ms
-STATS: parsing XPath query: 0.062943ms
-STATS: compiling XPath query: 0.230074ms
+STATS: parsing xml document: 0.632048ms
+STATS: parsing XPath query: 0.077009ms
+STATS: compiling XPath query: 0.351191ms
STATS: Query: /descendant-or-self::node()/child::L/attribute::@id/parent::*
STATS: Automaton:
-STATS: evaluating query: 2.954006ms
-STATS: serializing results: 1.592875ms
+STATS: evaluating query: 144.134045ms
+STATS: serializing results: 0.113964ms
STATS: 1 iterations
STATS: automaton 0, cache2: 70 entries, cache6: 1594 entries
STATS: cache2: length: 105, used: 35, occupation: 0.333333
Diff: ok
-------------------------------------------
Query: P1 : //*[L]
-STATS: parsing xml document: 0.375032ms
-STATS: parsing XPath query: 0.041962ms
-STATS: compiling XPath query: 0.159979ms
+STATS: parsing xml document: 0.560999ms
+STATS: parsing XPath query: 0.059128ms
+STATS: compiling XPath query: 0.232935ms
STATS: Query: /descendant-or-self::node()/child::*[ child::L ]
STATS: Automaton:
-STATS: evaluating query: 1.675844ms
-STATS: serializing results: 1.981974ms
+STATS: evaluating query: 139.696121ms
+STATS: serializing results: 0.160933ms
STATS: 1 iterations
STATS: automaton 0, cache2: 70 entries, cache6: 1326 entries
STATS: cache2: length: 105, used: 35, occupation: 0.333333
Diff: ok
-------------------------------------------
Query: P2 : //*[parent::L]
-STATS: parsing xml document: 0.432968ms
-STATS: parsing XPath query: 0.052929ms
-STATS: compiling XPath query: 0.165939ms
+STATS: parsing xml document: 0.554085ms
+STATS: parsing XPath query: 0.067949ms
+STATS: compiling XPath query: 0.285864ms
STATS: Query: /descendant-or-self::node()/child::*[ parent::L ]
STATS: Automaton:
-STATS: evaluating query: 1.738071ms
-STATS: serializing results: 1.655102ms
+STATS: evaluating query: 141.451120ms
+STATS: serializing results: 0.101805ms
STATS: 1 iterations
STATS: automaton 0, cache2: 70 entries, cache6: 809 entries
STATS: cache2: length: 105, used: 35, occupation: 0.333333
Diff: ok
-------------------------------------------
Query: P3 : //*[descendant::L]
-STATS: parsing xml document: 0.375032ms
-STATS: parsing XPath query: 0.046968ms
-STATS: compiling XPath query: 0.176907ms
+STATS: parsing xml document: 0.563145ms
+STATS: parsing XPath query: 0.065088ms
+STATS: compiling XPath query: 0.247955ms
STATS: Query: /descendant-or-self::node()/child::*[ descendant::L ]
STATS: Automaton:
-STATS: evaluating query: 2.294064ms
-STATS: serializing results: 2.086878ms
+STATS: evaluating query: 133.634090ms
+STATS: serializing results: 0.274181ms
STATS: 1 iterations
STATS: automaton 0, cache2: 70 entries, cache6: 1336 entries
STATS: cache2: length: 105, used: 35, occupation: 0.333333
Diff: ok
-------------------------------------------
Query: P4 : //*[descendant-or-self::L]
-STATS: parsing xml document: 0.414133ms
-STATS: parsing XPath query: 0.047922ms
-STATS: compiling XPath query: 0.169992ms
+STATS: parsing xml document: 0.655890ms
+STATS: parsing XPath query: 0.062943ms
+STATS: compiling XPath query: 0.263929ms
STATS: Query: /descendant-or-self::node()/child::*[ descendant-or-self::L ]
STATS: Automaton:
-STATS: evaluating query: 2.105951ms
-STATS: serializing results: 2.239943ms
+STATS: evaluating query: 146.183014ms
+STATS: serializing results: 0.303984ms
STATS: 1 iterations
STATS: automaton 0, cache2: 70 entries, cache6: 1242 entries
STATS: cache2: length: 105, used: 35, occupation: 0.333333
Diff: ok
-------------------------------------------
Query: P5 : //*[ancestor::L]
-STATS: parsing xml document: 0.371933ms
-STATS: parsing XPath query: 0.048876ms
-STATS: compiling XPath query: 0.190020ms
+STATS: parsing xml document: 0.551939ms
+STATS: parsing XPath query: 0.062943ms
+STATS: compiling XPath query: 0.285864ms
STATS: Query: /descendant-or-self::node()/child::*[ ancestor::L ]
STATS: Automaton:
-STATS: evaluating query: 2.069950ms
-STATS: serializing results: 1.581192ms
+STATS: evaluating query: 146.598816ms
+STATS: serializing results: 0.114918ms
STATS: 1 iterations
STATS: automaton 0, cache2: 70 entries, cache6: 918 entries
STATS: cache2: length: 105, used: 35, occupation: 0.333333
Diff: ok
-------------------------------------------
Query: P6 : //*[ancestor-or-self::L]
-STATS: parsing xml document: 0.371933ms
-STATS: parsing XPath query: 0.046968ms
-STATS: compiling XPath query: 0.189066ms
+STATS: parsing xml document: 0.544071ms
+STATS: parsing XPath query: 0.064135ms
+STATS: compiling XPath query: 0.274897ms
STATS: Query: /descendant-or-self::node()/child::*[ ancestor-or-self::L ]
STATS: Automaton:
-STATS: evaluating query: 1.805067ms
-STATS: serializing results: 1.686096ms
+STATS: evaluating query: 138.018131ms
+STATS: serializing results: 0.143051ms
STATS: 1 iterations
STATS: automaton 0, cache2: 70 entries, cache6: 918 entries
STATS: cache2: length: 105, used: 35, occupation: 0.333333
Diff: ok
-------------------------------------------
Query: P7 : //*[following-sibling::L]
-STATS: parsing xml document: 0.369072ms
-STATS: parsing XPath query: 0.047922ms
-STATS: compiling XPath query: 0.158787ms
+STATS: parsing xml document: 0.545979ms
+STATS: parsing XPath query: 0.064135ms
+STATS: compiling XPath query: 0.231028ms
STATS: Query: /descendant-or-self::node()/child::*[ following-sibling::L ]
STATS: Automaton:
-STATS: evaluating query: 1.772881ms
-STATS: serializing results: 1.531124ms
+STATS: evaluating query: 134.088993ms
+STATS: serializing results: 0.110149ms
STATS: 1 iterations
STATS: automaton 0, cache2: 70 entries, cache6: 1174 entries
STATS: cache2: length: 105, used: 35, occupation: 0.333333
Diff: ok
-------------------------------------------
Query: P8 : //*[preceding-sibling::L]
-STATS: parsing xml document: 0.367165ms
-STATS: parsing XPath query: 0.058889ms
-STATS: compiling XPath query: 0.153065ms
+STATS: parsing xml document: 0.558138ms
+STATS: parsing XPath query: 0.073910ms
+STATS: compiling XPath query: 0.233173ms
STATS: Query: /descendant-or-self::node()/child::*[ preceding-sibling::L ]
STATS: Automaton:
-STATS: evaluating query: 1.419067ms
-STATS: serializing results: 1.618147ms
+STATS: evaluating query: 137.306929ms
+STATS: serializing results: 0.104904ms
STATS: 1 iterations
STATS: automaton 0, cache2: 70 entries, cache6: 1051 entries
STATS: cache2: length: 105, used: 35, occupation: 0.333333
Diff: ok
-------------------------------------------
Query: P9 : //*[following::L]
-STATS: parsing xml document: 0.360012ms
-STATS: parsing XPath query: 0.047922ms
-STATS: compiling XPath query: 0.232935ms
+STATS: parsing xml document: 0.558138ms
+STATS: parsing XPath query: 0.063896ms
+STATS: compiling XPath query: 0.343800ms
STATS: Query: /descendant-or-self::node()/child::*[ ancestor-or-self::node()/following-sibling::node()/descendant-or-self::L ]
STATS: Automaton:
-STATS: evaluating query: 6.263018ms
-STATS: serializing results: 1.722097ms
+STATS: evaluating query: 186.290979ms
+STATS: serializing results: 0.090122ms
STATS: 2 iterations
-STATS: automaton 0, cache2: 0 entries, cache6: 780 entries
+STATS: automaton 0, cache2: 0 entries, cache6: 779 entries
STATS: cache2: length: 0, used: 0, occupation: -nan
-STATS: cache4: length: 915, used: 135, occupation: 0.147541
+STATS: cache4: length: 912, used: 133, occupation: 0.145833
Diff: ok
-------------------------------------------
Query: P10 : //*[preceding::L]
-STATS: parsing xml document: 0.365973ms
-STATS: parsing XPath query: 0.061989ms
-STATS: compiling XPath query: 0.229120ms
+STATS: parsing xml document: 0.553846ms
+STATS: parsing XPath query: 0.076056ms
+STATS: compiling XPath query: 0.351191ms
STATS: Query: /descendant-or-self::node()/child::*[ ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::L ]
STATS: Automaton:
-STATS: evaluating query: 3.866911ms
-STATS: serializing results: 1.757860ms
+STATS: evaluating query: 151.458025ms
+STATS: serializing results: 0.101089ms
STATS: 1 iterations
STATS: automaton 0, cache2: 70 entries, cache6: 1767 entries
STATS: cache2: length: 105, used: 35, occupation: 0.333333
Diff: ok
-------------------------------------------
Query: P11 : //*[self::L]
-STATS: parsing xml document: 0.379086ms
-STATS: parsing XPath query: 0.041962ms
-STATS: compiling XPath query: 0.138044ms
+STATS: parsing xml document: 0.576019ms
+STATS: parsing XPath query: 0.061989ms
+STATS: compiling XPath query: 0.214815ms
STATS: Query: /descendant-or-self::node()/child::*[ self::L ]
STATS: Automaton:
-STATS: evaluating query: 1.396179ms
-STATS: serializing results: 1.624823ms
+STATS: evaluating query: 131.872892ms
+STATS: serializing results: 0.112057ms
STATS: 1 iterations
STATS: automaton 0, cache2: 70 entries, cache6: 837 entries
STATS: cache2: length: 105, used: 35, occupation: 0.333333
Diff: ok
-------------------------------------------
Query: P12 : //*[@id]
-STATS: parsing xml document: 0.368834ms
-STATS: parsing XPath query: 0.042915ms
-STATS: compiling XPath query: 0.159025ms
+STATS: parsing xml document: 0.578880ms
+STATS: parsing XPath query: 0.060081ms
+STATS: compiling XPath query: 0.235081ms
STATS: Query: /descendant-or-self::node()/child::*[ attribute::@id ]
STATS: Automaton:
-STATS: evaluating query: 1.451969ms
-STATS: serializing results: 2.529860ms
+STATS: evaluating query: 136.634827ms
+STATS: serializing results: 0.459909ms
STATS: 1 iterations
STATS: automaton 0, cache2: 70 entries, cache6: 907 entries
STATS: cache2: length: 105, used: 35, occupation: 0.333333
Diff: ok
-------------------------------------------
Query: T1 : //L/text()
-STATS: parsing xml document: 0.361919ms
-STATS: parsing XPath query: 0.056028ms
-STATS: compiling XPath query: 0.310183ms
+STATS: parsing xml document: 0.551939ms
+STATS: parsing XPath query: 0.077963ms
+STATS: compiling XPath query: 0.298023ms
STATS: Query: /descendant-or-self::node()/child::L/child::text()
STATS: Automaton:
-STATS: evaluating query: 2.119064ms
-STATS: serializing results: 1.483917ms
+STATS: evaluating query: 136.301994ms
+STATS: serializing results: 0.074863ms
STATS: 1 iterations
STATS: automaton 0, cache2: 70 entries, cache6: 809 entries
STATS: cache2: length: 105, used: 35, occupation: 0.333333
Diff: ok
-------------------------------------------
Query: T2 : //L/comment()
-STATS: parsing xml document: 0.418901ms
-STATS: parsing XPath query: 0.066042ms
-STATS: compiling XPath query: 0.249863ms
+STATS: parsing xml document: 0.564098ms
+STATS: parsing XPath query: 0.091076ms
+STATS: compiling XPath query: 0.303030ms
STATS: Query: /descendant-or-self::node()/child::L/child::comment()
STATS: Automaton:
-STATS: evaluating query: 2.057076ms
-STATS: serializing results: 1.518011ms
+STATS: evaluating query: 133.058071ms
+STATS: serializing results: 0.067949ms
STATS: 1 iterations
STATS: automaton 0, cache2: 70 entries, cache6: 809 entries
STATS: cache2: length: 105, used: 35, occupation: 0.333333
Diff: ok
-------------------------------------------
Query: T3 : //L/processing-instruction()
-STATS: parsing xml document: 0.372887ms
-STATS: parsing XPath query: 0.066996ms
-STATS: compiling XPath query: 0.199080ms
+STATS: parsing xml document: 0.547171ms
+STATS: parsing XPath query: 0.099182ms
+STATS: compiling XPath query: 0.407934ms
STATS: Query: /descendant-or-self::node()/child::L/child::processing-instruction()
STATS: Automaton:
-STATS: evaluating query: 2.147913ms
-STATS: serializing results: 1.501799ms
+STATS: evaluating query: 137.789965ms
+STATS: serializing results: 0.077963ms
STATS: 1 iterations
STATS: automaton 0, cache2: 70 entries, cache6: 809 entries
STATS: cache2: length: 105, used: 35, occupation: 0.333333
Diff: ok
-------------------------------------------
Query: T4 : //L/processing-instruction("myPI")
-STATS: parsing xml document: 0.376940ms
-STATS: parsing XPath query: 0.077963ms
-STATS: compiling XPath query: 0.203133ms
+STATS: parsing xml document: 0.540972ms
+STATS: parsing XPath query: 0.108004ms
+STATS: compiling XPath query: 0.409126ms
STATS: Query: /descendant-or-self::node()/child::L/child::processing-instruction('?myPI')
STATS: Automaton:
-STATS: evaluating query: 2.029896ms
-STATS: serializing results: 1.441956ms
+STATS: evaluating query: 132.414818ms
+STATS: serializing results: 0.075817ms
STATS: 1 iterations
STATS: automaton 0, cache2: 70 entries, cache6: 809 entries
STATS: cache2: length: 105, used: 35, occupation: 0.333333
Diff: ok
-------------------------------------------
Query: T5 : //L/node()
-STATS: parsing xml document: 0.370026ms
-STATS: parsing XPath query: 0.055790ms
-STATS: compiling XPath query: 0.197887ms
+STATS: parsing xml document: 0.549078ms
+STATS: parsing XPath query: 0.076056ms
+STATS: compiling XPath query: 0.291109ms
STATS: Query: /descendant-or-self::node()/child::L/child::node()
STATS: Automaton:
-STATS: evaluating query: 1.987934ms
-STATS: serializing results: 1.667023ms
+STATS: evaluating query: 139.785051ms
+STATS: serializing results: 0.116825ms
STATS: 1 iterations
STATS: automaton 0, cache2: 70 entries, cache6: 809 entries
STATS: cache2: length: 105, used: 35, occupation: 0.333333
Diff: ok
-------------------------------------------
Query: T6 : //L/N
-STATS: parsing xml document: 0.372887ms
-STATS: parsing XPath query: 0.044823ms
-STATS: compiling XPath query: 0.205994ms
+STATS: parsing xml document: 0.553846ms
+STATS: parsing XPath query: 0.061035ms
+STATS: compiling XPath query: 0.307083ms
STATS: Query: /descendant-or-self::node()/child::L/child::N
STATS: Automaton:
-STATS: evaluating query: 2.081871ms
-STATS: serializing results: 1.513004ms
+STATS: evaluating query: 135.293007ms
+STATS: serializing results: 0.109911ms
STATS: 1 iterations
STATS: automaton 0, cache2: 70 entries, cache6: 819 entries
STATS: cache2: length: 105, used: 35, occupation: 0.333333
Diff: ok
-------------------------------------------
Query: T7 : //L/*
-STATS: parsing xml document: 0.377893ms
-STATS: parsing XPath query: 0.046015ms
-STATS: compiling XPath query: 0.201941ms
+STATS: parsing xml document: 0.647068ms
+STATS: parsing XPath query: 0.056028ms
+STATS: compiling XPath query: 0.302076ms
STATS: Query: /descendant-or-self::node()/child::L/child::*
STATS: Automaton:
-STATS: evaluating query: 1.969099ms
-STATS: serializing results: 1.557112ms
+STATS: evaluating query: 136.944771ms
+STATS: serializing results: 0.104904ms
STATS: 1 iterations
STATS: automaton 0, cache2: 70 entries, cache6: 809 entries
STATS: cache2: length: 105, used: 35, occupation: 0.333333
Diff: ok
-------------------------------------------
Query: O1 : //*[child::* and preceding::Q]
-STATS: parsing xml document: 0.375986ms
-STATS: parsing XPath query: 0.054121ms
-STATS: compiling XPath query: 0.251055ms
+STATS: parsing xml document: 0.321865ms
+STATS: parsing XPath query: 0.101089ms
+STATS: compiling XPath query: 0.393867ms
STATS: Query: /descendant-or-self::node()/child::*[ child::* and ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::Q ]
STATS: Automaton:
-STATS: evaluating query: 5.450010ms
-STATS: serializing results: 1.646042ms
+STATS: evaluating query: 154.838085ms
+STATS: serializing results: 0.120878ms
STATS: 1 iterations
STATS: automaton 0, cache2: 70 entries, cache6: 1873 entries
STATS: cache2: length: 105, used: 35, occupation: 0.333333
Diff: ok
-------------------------------------------
Query: O2 : //*[not(child::*) and preceding::Q]
-STATS: parsing xml document: 0.358105ms
-STATS: parsing XPath query: 0.061035ms
-STATS: compiling XPath query: 0.333786ms
+STATS: parsing xml document: 0.550032ms
+STATS: parsing XPath query: 0.091076ms
+STATS: compiling XPath query: 0.397921ms
STATS: Query: /descendant-or-self::node()/child::*[ not(child::*) and ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::Q ]
STATS: Automaton:
-STATS: evaluating query: 5.686045ms
-STATS: serializing results: 1.607180ms
+STATS: evaluating query: 160.339832ms
+STATS: serializing results: 0.063896ms
STATS: 1 iterations
STATS: automaton 0, cache2: 70 entries, cache6: 1873 entries
STATS: cache2: length: 105, used: 35, occupation: 0.333333
Diff: ok
-------------------------------------------
Query: O3 : //*[preceding::L or following::L]
-STATS: parsing xml document: 0.378132ms
-STATS: parsing XPath query: 0.060797ms
-STATS: compiling XPath query: 0.334024ms
+STATS: parsing xml document: 0.547886ms
+STATS: parsing XPath query: 0.087023ms
+STATS: compiling XPath query: 0.487089ms
STATS: Query: /descendant-or-self::node()/child::*[ ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::L or ancestor-or-self::node()/following-sibling::node()/descendant-or-self::L ]
STATS: Automaton:
-STATS: evaluating query: 10.611057ms
-STATS: serializing results: 1.986027ms
+STATS: evaluating query: 224.081993ms
+STATS: serializing results: 0.215054ms
STATS: 2 iterations
-STATS: automaton 0, cache2: 0 entries, cache6: 610 entries
+STATS: automaton 0, cache2: 0 entries, cache6: 582 entries
STATS: cache2: length: 0, used: 0, occupation: -nan
-STATS: cache4: length: 778, used: 168, occupation: 0.215938
+STATS: cache4: length: 747, used: 165, occupation: 0.220884
Diff: ok
-------------------------------------------
Query: O4 : //L/ancestor::* | //L/descendant::*
-STATS: parsing xml document: 0.406981ms
-STATS: parsing XPath query: 0.067949ms
-STATS: compiling XPath query: 0.372887ms
+STATS: parsing xml document: 0.553131ms
+STATS: parsing XPath query: 0.068903ms
+STATS: compiling XPath query: 0.566006ms
STATS: Query: /descendant-or-self::node()/child::L/ancestor::* | /descendant-or-self::node()/child::L/descendant::*
STATS: Automaton:
-STATS: evaluating query: 7.152081ms
-STATS: serializing results: 2.159119ms
+STATS: evaluating query: 178.429842ms
+STATS: serializing results: 0.290155ms
STATS: 1 iterations
STATS: automaton 0, cache2: 70 entries, cache6: 2345 entries
STATS: cache2: length: 105, used: 35, occupation: 0.333333
Query: C0 : /descendant::comment()
-STATS: parsing xml document: 0.116110ms
-STATS: parsing XPath query: 0.055790ms
-STATS: compiling XPath query: 0.086069ms
+STATS: parsing xml document: 0.512838ms
+STATS: parsing XPath query: 0.077963ms
+STATS: compiling XPath query: 0.122070ms
STATS: Query: /descendant::comment()
STATS: Automaton:
-STATS: evaluating query: 0.079870ms
-STATS: serializing results: 1.483917ms
+STATS: evaluating query: 48.376083ms
+STATS: serializing results: 0.030994ms
STATS: 1 iterations
STATS: automaton 0, cache2: 6 entries, cache6: 18 entries
STATS: cache2: length: 9, used: 3, occupation: 0.333333
Query: A1 : /site/closed_auctions/closed_auction/annotation/description/text/keyword
-STATS: parsing xml document: 192.482948ms
-STATS: parsing XPath query: 0.085115ms
-STATS: compiling XPath query: 0.261068ms
+STATS: parsing xml document: 410.294056ms
+STATS: parsing XPath query: 0.077963ms
+STATS: compiling XPath query: 0.396013ms
STATS: Query: /child::site/child::closed_auctions/child::closed_auction/child::annotation/child::description/child::text/child::keyword
STATS: Automaton:
-STATS: evaluating query: 108.249903ms
-STATS: serializing results: 3.324032ms
+STATS: evaluating query: 211.765051ms
+STATS: serializing results: 0.488043ms
STATS: 1 iterations
STATS: automaton 0, cache2: 170 entries, cache6: 3149 entries
STATS: cache2: length: 255, used: 85, occupation: 0.333333
Diff: ok
-------------------------------------------
Query: A2 : //closed_auction//keyword
-STATS: parsing xml document: 192.501068ms
-STATS: parsing XPath query: 0.058889ms
-STATS: compiling XPath query: 0.138998ms
+STATS: parsing xml document: 412.861109ms
+STATS: parsing XPath query: 0.049829ms
+STATS: compiling XPath query: 0.177860ms
STATS: Query: /descendant-or-self::node()/child::closed_auction/descendant-or-self::node()/child::keyword
STATS: Automaton:
-STATS: evaluating query: 129.096985ms
-STATS: serializing results: 6.552219ms
+STATS: evaluating query: 239.673138ms
+STATS: serializing results: 1.279831ms
STATS: 1 iterations
STATS: automaton 0, cache2: 170 entries, cache6: 2681 entries
STATS: cache2: length: 255, used: 85, occupation: 0.333333
Diff: ok
-------------------------------------------
Query: A3 : /site/closed_auctions/closed_auction//keyword
-STATS: parsing xml document: 185.832024ms
-STATS: parsing XPath query: 0.071049ms
-STATS: compiling XPath query: 0.129938ms
+STATS: parsing xml document: 409.093857ms
+STATS: parsing XPath query: 0.059128ms
+STATS: compiling XPath query: 0.230074ms
STATS: Query: /child::site/child::closed_auctions/child::closed_auction/descendant-or-self::node()/child::keyword
STATS: Automaton:
-STATS: evaluating query: 123.064041ms
-STATS: serializing results: 6.781101ms
+STATS: evaluating query: 232.646942ms
+STATS: serializing results: 1.214027ms
STATS: 1 iterations
STATS: automaton 0, cache2: 170 entries, cache6: 3277 entries
STATS: cache2: length: 255, used: 85, occupation: 0.333333
Diff: ok
-------------------------------------------
Query: A4 : /site/closed_auctions/closed_auction[annotation/description/text/keyword]/date
-STATS: parsing xml document: 199.089050ms
-STATS: parsing XPath query: 0.107050ms
-STATS: compiling XPath query: 0.153065ms
+STATS: parsing xml document: 411.557913ms
+STATS: parsing XPath query: 0.082970ms
+STATS: compiling XPath query: 0.281811ms
STATS: Query: /child::site/child::closed_auctions/child::closed_auction[ child::annotation/child::description/child::text/child::keyword ]/child::date
STATS: Automaton:
-STATS: evaluating query: 166.728973ms
-STATS: serializing results: 2.009153ms
+STATS: evaluating query: 313.055992ms
+STATS: serializing results: 0.196934ms
STATS: 2 iterations
STATS: automaton 0, cache2: 0 entries, cache6: 1324 entries
STATS: cache2: length: 0, used: 0, occupation: -nan
Diff: ok
-------------------------------------------
Query: A5 : /site/closed_auctions/closed_auction[descendant::keyword]/date
-STATS: parsing xml document: 187.058926ms
-STATS: parsing XPath query: 0.071049ms
-STATS: compiling XPath query: 0.151873ms
+STATS: parsing xml document: 407.375097ms
+STATS: parsing XPath query: 0.066996ms
+STATS: compiling XPath query: 0.221014ms
STATS: Query: /child::site/child::closed_auctions/child::closed_auction[ descendant::keyword ]/child::date
STATS: Automaton:
-STATS: evaluating query: 167.564154ms
-STATS: serializing results: 2.597094ms
+STATS: evaluating query: 307.749987ms
+STATS: serializing results: 0.308990ms
STATS: 2 iterations
STATS: automaton 0, cache2: 0 entries, cache6: 1170 entries
STATS: cache2: length: 0, used: 0, occupation: -nan
Diff: ok
-------------------------------------------
Query: A6 : /site/people/person[profile/gender and profile/age]/name
-STATS: parsing xml document: 189.209938ms
-STATS: parsing XPath query: 0.105143ms
-STATS: compiling XPath query: 0.147104ms
+STATS: parsing xml document: 408.198118ms
+STATS: parsing XPath query: 0.082970ms
+STATS: compiling XPath query: 0.280142ms
STATS: Query: /child::site/child::people/child::person[ child::profile/child::gender and child::profile/child::age ]/child::name
STATS: Automaton:
-STATS: evaluating query: 166.081190ms
-STATS: serializing results: 2.472162ms
+STATS: evaluating query: 305.827141ms
+STATS: serializing results: 0.275135ms
STATS: 2 iterations
STATS: automaton 0, cache2: 0 entries, cache6: 2174 entries
STATS: cache2: length: 0, used: 0, occupation: -nan
Diff: ok
-------------------------------------------
Query: A7 : /site/people/person[phone or homepage]/name
-STATS: parsing xml document: 192.768097ms
-STATS: parsing XPath query: 0.132084ms
-STATS: compiling XPath query: 0.111103ms
+STATS: parsing xml document: 405.750990ms
+STATS: parsing XPath query: 0.069857ms
+STATS: compiling XPath query: 0.235081ms
STATS: Query: /child::site/child::people/child::person[ child::phone or child::homepage ]/child::name
STATS: Automaton:
-STATS: evaluating query: 162.614822ms
-STATS: serializing results: 4.990816ms
+STATS: evaluating query: 309.036016ms
+STATS: serializing results: 1.051903ms
STATS: 2 iterations
STATS: automaton 0, cache2: 0 entries, cache6: 1728 entries
STATS: cache2: length: 0, used: 0, occupation: -nan
Diff: ok
-------------------------------------------
Query: A8 : /site/people/person[address and (phone or homepage) and (creditcard or profile)]/name
-STATS: parsing xml document: 191.587925ms
-STATS: parsing XPath query: 0.117064ms
-STATS: compiling XPath query: 0.157118ms
+STATS: parsing xml document: 417.298794ms
+STATS: parsing XPath query: 0.096083ms
+STATS: compiling XPath query: 0.298977ms
STATS: Query: /child::site/child::people/child::person[ child::address and (child::phone or child::homepage) and (child::creditcard or child::profile) ]/child::name
STATS: Automaton:
-STATS: evaluating query: 175.364017ms
-STATS: serializing results: 3.123999ms
+STATS: evaluating query: 325.822115ms
+STATS: serializing results: 0.463009ms
STATS: 2 iterations
STATS: automaton 0, cache2: 0 entries, cache6: 9331 entries
STATS: cache2: length: 0, used: 0, occupation: -nan
Diff: ok
-------------------------------------------
Query: B1 : /site/regions/*/item[parent::namerica or parent::samerica]/name
-STATS: parsing xml document: 192.234039ms
-STATS: parsing XPath query: 0.096083ms
-STATS: compiling XPath query: 0.241041ms
+STATS: parsing xml document: 411.556959ms
+STATS: parsing XPath query: 0.079870ms
+STATS: compiling XPath query: 0.313044ms
STATS: Query: /child::site/child::regions/child::*/child::item[ parent::namerica or parent::samerica ]/child::name
STATS: Automaton:
-STATS: evaluating query: 110.785961ms
-STATS: serializing results: 3.708839ms
+STATS: evaluating query: 215.039015ms
+STATS: serializing results: 0.742912ms
STATS: 1 iterations
STATS: automaton 0, cache2: 170 entries, cache6: 3466 entries
STATS: cache2: length: 255, used: 85, occupation: 0.333333
Diff: ok
-------------------------------------------
Query: B2 : //keyword/ancestor::listitem/text/keyword
-STATS: parsing xml document: 191.808939ms
-STATS: parsing XPath query: 0.081062ms
-STATS: compiling XPath query: 0.133038ms
+STATS: parsing xml document: 410.917044ms
+STATS: parsing XPath query: 0.068188ms
+STATS: compiling XPath query: 0.227928ms
STATS: Query: /descendant-or-self::node()/child::keyword/ancestor::listitem/child::text/child::keyword
STATS: Automaton:
-STATS: evaluating query: 188.368082ms
-STATS: serializing results: 13.005018ms
+STATS: evaluating query: 349.317789ms
+STATS: serializing results: 2.888918ms
STATS: 2 iterations
STATS: automaton 0, cache2: 0 entries, cache6: 2331 entries
STATS: cache2: length: 0, used: 0, occupation: -nan
Diff: ok
-------------------------------------------
Query: B3 : /site/open_auctions/open_auction/bidder[following-sibling::bidder]
-STATS: parsing xml document: 190.916777ms
-STATS: parsing XPath query: 0.074863ms
-STATS: compiling XPath query: 0.138044ms
+STATS: parsing xml document: 401.097775ms
+STATS: parsing XPath query: 0.061989ms
+STATS: compiling XPath query: 0.203848ms
STATS: Query: /child::site/child::open_auctions/child::open_auction/child::bidder[ following-sibling::bidder ]
STATS: Automaton:
-STATS: evaluating query: 126.197100ms
-STATS: serializing results: 31.688929ms
+STATS: evaluating query: 226.150036ms
+STATS: serializing results: 7.114887ms
STATS: 1 iterations
STATS: automaton 0, cache2: 170 entries, cache6: 2871 entries
STATS: cache2: length: 255, used: 85, occupation: 0.333333
Diff: ok
-------------------------------------------
Query: B4 : /site/open_auctions/open_auction/bidder[preceding-sibling::bidder]
-STATS: parsing xml document: 190.321922ms
-STATS: parsing XPath query: 0.083923ms
-STATS: compiling XPath query: 0.125885ms
+STATS: parsing xml document: 404.300928ms
+STATS: parsing XPath query: 0.075817ms
+STATS: compiling XPath query: 0.204086ms
STATS: Query: /child::site/child::open_auctions/child::open_auction/child::bidder[ preceding-sibling::bidder ]
STATS: Automaton:
-STATS: evaluating query: 111.509800ms
-STATS: serializing results: 31.404972ms
+STATS: evaluating query: 211.428165ms
+STATS: serializing results: 7.288933ms
STATS: 1 iterations
STATS: automaton 0, cache2: 170 entries, cache6: 2282 entries
STATS: cache2: length: 255, used: 85, occupation: 0.333333
Diff: ok
-------------------------------------------
Query: B5 : /site/regions/*/item[following::item]/name
-STATS: parsing xml document: 190.927029ms
-STATS: parsing XPath query: 0.085831ms
-STATS: compiling XPath query: 0.184059ms
+STATS: parsing xml document: 405.932903ms
+STATS: parsing XPath query: 0.068903ms
+STATS: compiling XPath query: 0.341892ms
STATS: Query: /child::site/child::regions/child::*/child::item[ ancestor-or-self::node()/following-sibling::node()/descendant-or-self::item ]/child::name
STATS: Automaton:
-STATS: evaluating query: 176.085949ms
-STATS: serializing results: 5.687952ms
+STATS: evaluating query: 342.656851ms
+STATS: serializing results: 1.129150ms
STATS: 2 iterations
STATS: automaton 0, cache2: 0 entries, cache6: 1992 entries
STATS: cache2: length: 0, used: 0, occupation: -nan
Diff: ok
-------------------------------------------
Query: B6 : /site/regions/*/item[preceding::item]/name
-STATS: parsing xml document: 191.268921ms
-STATS: parsing XPath query: 0.084877ms
-STATS: compiling XPath query: 0.183105ms
+STATS: parsing xml document: 401.692867ms
+STATS: parsing XPath query: 0.070095ms
+STATS: compiling XPath query: 0.338078ms
STATS: Query: /child::site/child::regions/child::*/child::item[ ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::item ]/child::name
STATS: Automaton:
-STATS: evaluating query: 131.505966ms
-STATS: serializing results: 5.664110ms
+STATS: evaluating query: 250.946999ms
+STATS: serializing results: 1.174927ms
STATS: 1 iterations
STATS: automaton 0, cache2: 170 entries, cache6: 4419 entries
STATS: cache2: length: 255, used: 85, occupation: 0.333333
Diff: ok
-------------------------------------------
Query: B7 : //person[profile/@income]/name
-STATS: parsing xml document: 192.240000ms
-STATS: parsing XPath query: 0.082016ms
-STATS: compiling XPath query: 0.117064ms
+STATS: parsing xml document: 422.059774ms
+STATS: parsing XPath query: 0.068188ms
+STATS: compiling XPath query: 0.185966ms
STATS: Query: /descendant-or-self::node()/child::person[ child::profile/attribute::@income ]/child::name
STATS: Automaton:
-STATS: evaluating query: 170.628071ms
-STATS: serializing results: 3.857851ms
+STATS: evaluating query: 330.724001ms
+STATS: serializing results: 0.678062ms
STATS: 2 iterations
STATS: automaton 0, cache2: 0 entries, cache6: 1238 entries
STATS: cache2: length: 0, used: 0, occupation: -nan
Diff: ok
-------------------------------------------
Query: B8 : /site/open_auctions/open_auction[bidder and not(bidder/preceding-sibling::bidder)]/interval
-STATS: parsing xml document: 188.287020ms
-STATS: parsing XPath query: 0.106096ms
-STATS: compiling XPath query: 0.140905ms
+STATS: parsing xml document: 404.323101ms
+STATS: parsing XPath query: 0.087023ms
+STATS: compiling XPath query: 0.262022ms
STATS: Query: /child::site/child::open_auctions/child::open_auction[ child::bidder and not(child::bidder/preceding-sibling::bidder) ]/child::interval
STATS: Automaton:
-STATS: evaluating query: 171.743155ms
-STATS: serializing results: 2.464056ms
+STATS: evaluating query: 319.082022ms
+STATS: serializing results: 0.202894ms
STATS: 2 iterations
STATS: automaton 0, cache2: 0 entries, cache6: 1052 entries
STATS: cache2: length: 0, used: 0, occupation: -nan
Diff: ok
-------------------------------------------
Query: B9 : /site/open_auctions/open_auction[(not(bidder/following::bidder) or not(bidder/preceding::bidder)) or (bidder/following::bidder and bidder/preceding::bidder)]/interval
-STATS: parsing xml document: 186.557055ms
-STATS: parsing XPath query: 0.151157ms
-STATS: compiling XPath query: 0.347853ms
+STATS: parsing xml document: 410.195112ms
+STATS: parsing XPath query: 0.121832ms
+STATS: compiling XPath query: 0.746012ms
STATS: Query: /child::site/child::open_auctions/child::open_auction[ not(child::bidder/ancestor-or-self::node()/following-sibling::node()/descendant-or-self::bidder) or not(child::bidder/ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::bidder) or child::bidder/ancestor-or-self::node()/following-sibling::node()/descendant-or-self::bidder and child::bidder/ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::bidder ]/child::interval
STATS: Automaton:
-STATS: evaluating query: 249.915838ms
-STATS: serializing results: 6.402969ms
+STATS: evaluating query: 474.653959ms
+STATS: serializing results: 1.121044ms
STATS: 3 iterations
STATS: automaton 0, cache2: 0 entries, cache6: 786 entries
STATS: cache2: length: 0, used: 0, occupation: -nan
Diff: ok
-------------------------------------------
Query: B10 : /site/open_auctions/open_auction[(not(bidder/following::bidder) or not(bidder/preceding::bidder)) and (bidder/following::bidder and bidder/preceding::bidder)]/interval
-STATS: parsing xml document: 191.452980ms
-STATS: parsing XPath query: 0.135183ms
-STATS: compiling XPath query: 0.352144ms
+STATS: parsing xml document: 403.446913ms
+STATS: parsing XPath query: 0.122070ms
+STATS: compiling XPath query: 0.746012ms
STATS: Query: /child::site/child::open_auctions/child::open_auction[ (not(child::bidder/ancestor-or-self::node()/following-sibling::node()/descendant-or-self::bidder) or not(child::bidder/ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::bidder)) and child::bidder/ancestor-or-self::node()/following-sibling::node()/descendant-or-self::bidder and child::bidder/ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::bidder ]/child::interval
STATS: Automaton:
-STATS: evaluating query: 239.425898ms
-STATS: serializing results: 1.636982ms
+STATS: evaluating query: 487.916946ms
+STATS: serializing results: 0.033140ms
STATS: 3 iterations
STATS: automaton 0, cache2: 0 entries, cache6: 827 entries
STATS: cache2: length: 0, used: 0, occupation: -nan
Diff: ok
-------------------------------------------
Query: B11 : //open_auction/bidder/../bidder/../bidder/../interval
-STATS: parsing xml document: 189.797163ms
-STATS: parsing XPath query: 0.072956ms
-STATS: compiling XPath query: 0.228882ms
+STATS: parsing xml document: 404.007912ms
+STATS: parsing XPath query: 0.060081ms
+STATS: compiling XPath query: 0.418186ms
STATS: Query: /descendant-or-self::node()/child::open_auction/child::bidder/parent::node()/child::bidder/parent::node()/child::bidder/parent::node()/child::interval
STATS: Automaton:
-STATS: evaluating query: 276.601076ms
-STATS: serializing results: 6.062984ms
+STATS: evaluating query: 537.139177ms
+STATS: serializing results: 1.827955ms
STATS: 4 iterations
STATS: automaton 0, cache2: 0 entries, cache6: 598 entries
STATS: cache2: length: 0, used: 0, occupation: -nan
Diff: ok
-------------------------------------------
Query: B12 : //item/@id/../@id/../@id/../@id/../name
-STATS: parsing xml document: 191.452026ms
-STATS: parsing XPath query: 0.083923ms
-STATS: compiling XPath query: 0.275850ms
+STATS: parsing xml document: 399.324894ms
+STATS: parsing XPath query: 0.067949ms
+STATS: compiling XPath query: 0.534058ms
STATS: Query: /descendant-or-self::node()/child::item/attribute::@id/parent::node()/attribute::@id/parent::node()/attribute::@id/parent::node()/attribute::@id/parent::node()/child::name
STATS: Automaton:
-STATS: evaluating query: 328.938007ms
-STATS: serializing results: 5.661011ms
+STATS: evaluating query: 624.691963ms
+STATS: serializing results: 1.193047ms
STATS: 5 iterations
STATS: automaton 0, cache2: 0 entries, cache6: 870 entries
STATS: cache2: length: 0, used: 0, occupation: -nan
Diff: ok
-------------------------------------------
Query: B13 : //keyword/ancestor::parlist/descendant::keyword/ancestor::parlist/descendant::keyword/ancestor::parlist/descendant::keyword
-STATS: parsing xml document: 188.703060ms
-STATS: parsing XPath query: 0.082970ms
-STATS: compiling XPath query: 0.232935ms
+STATS: parsing xml document: 419.275045ms
+STATS: parsing XPath query: 0.081062ms
+STATS: compiling XPath query: 0.416994ms
STATS: Query: /descendant-or-self::node()/child::keyword/ancestor::parlist/descendant::keyword/ancestor::parlist/descendant::keyword/ancestor::parlist/descendant::keyword
STATS: Automaton:
-STATS: evaluating query: 286.443949ms
-STATS: serializing results: 14.273882ms
+STATS: evaluating query: 531.944990ms
+STATS: serializing results: 3.096819ms
STATS: 4 iterations
STATS: automaton 0, cache2: 0 entries, cache6: 2671 entries
STATS: cache2: length: 0, used: 0, occupation: -nan
+++ /dev/null
-Query: A1 : /site/closed_auctions/closed_auction/annotation/description/text/keyword
-STATS: parsing xml document: 1.968861ms
-STATS: parsing XPath query: 0.094175ms
-STATS: compiling XPath query: 0.621080ms
-STATS: Query: /child::site/child::closed_auctions/child::closed_auction/child::annotation/child::description/child::text/child::keyword
-STATS: Automaton:
-STATS: evaluating query: 9.465933ms
-STATS: serializing results: 1.741171ms
-STATS: 1 iterations
-STATS: automaton 0, cache2: 140 entries, cache6: 2831 entries
-STATS: cache2: length: 210, used: 70, occupation: 0.333333
-STATS: cache4: length: 3099, used: 268, occupation: 0.086480
-Diff: ok
--------------------------------------------
-Query: A2 : //closed_auction//keyword
-STATS: parsing xml document: 2.207041ms
-STATS: parsing XPath query: 0.052214ms
-STATS: compiling XPath query: 0.268936ms
-STATS: Query: /descendant-or-self::node()/child::closed_auction/descendant-or-self::node()/child::keyword
-STATS: Automaton:
-STATS: evaluating query: 6.950855ms
-STATS: serializing results: 1.599073ms
-STATS: 1 iterations
-STATS: automaton 0, cache2: 140 entries, cache6: 2253 entries
-STATS: cache2: length: 210, used: 70, occupation: 0.333333
-STATS: cache4: length: 2452, used: 199, occupation: 0.081158
-Diff: ok
--------------------------------------------
-Query: A3 : /site/closed_auctions/closed_auction//keyword
-STATS: parsing xml document: 1.912832ms
-STATS: parsing XPath query: 0.064850ms
-STATS: compiling XPath query: 0.347137ms
-STATS: Query: /child::site/child::closed_auctions/child::closed_auction/descendant-or-self::node()/child::keyword
-STATS: Automaton:
-STATS: evaluating query: 8.553982ms
-STATS: serializing results: 1.499891ms
-STATS: 1 iterations
-STATS: automaton 0, cache2: 140 entries, cache6: 2969 entries
-STATS: cache2: length: 210, used: 70, occupation: 0.333333
-STATS: cache4: length: 3212, used: 243, occupation: 0.075654
-Diff: ok
--------------------------------------------
-Query: A4 : /site/closed_auctions/closed_auction[annotation/description/text/keyword]/date
-STATS: parsing xml document: 1.997948ms
-STATS: parsing XPath query: 0.099897ms
-STATS: compiling XPath query: 0.430822ms
-STATS: Query: /child::site/child::closed_auctions/child::closed_auction[ child::annotation/child::description/child::text/child::keyword ]/child::date
-STATS: Automaton:
-STATS: evaluating query: 11.668921ms
-STATS: serializing results: 1.580954ms
-STATS: 2 iterations
-STATS: automaton 0, cache2: 0 entries, cache6: 1056 entries
-STATS: cache2: length: 0, used: 0, occupation: -nan
-STATS: cache4: length: 1197, used: 141, occupation: 0.117794
-Diff: ok
--------------------------------------------
-Query: A5 : /site/closed_auctions/closed_auction[descendant::keyword]/date
-STATS: parsing xml document: 1.919031ms
-STATS: parsing XPath query: 0.072956ms
-STATS: compiling XPath query: 0.333786ms
-STATS: Query: /child::site/child::closed_auctions/child::closed_auction[ descendant::keyword ]/child::date
-STATS: Automaton:
-STATS: evaluating query: 8.996010ms
-STATS: serializing results: 1.481056ms
-STATS: 2 iterations
-STATS: automaton 0, cache2: 0 entries, cache6: 955 entries
-STATS: cache2: length: 0, used: 0, occupation: -nan
-STATS: cache4: length: 1080, used: 125, occupation: 0.115741
-Diff: ok
--------------------------------------------
-Query: A6 : /site/people/person[profile/gender and profile/age]/name
-STATS: parsing xml document: 1.996994ms
-STATS: parsing XPath query: 0.092030ms
-STATS: compiling XPath query: 0.415087ms
-STATS: Query: /child::site/child::people/child::person[ child::profile/child::gender and child::profile/child::age ]/child::name
-STATS: Automaton:
-STATS: evaluating query: 8.347034ms
-STATS: serializing results: 1.531124ms
-STATS: 2 iterations
-STATS: automaton 0, cache2: 0 entries, cache6: 224 entries
-STATS: cache2: length: 0, used: 0, occupation: -nan
-STATS: cache4: length: 277, used: 53, occupation: 0.191336
-Diff: ok
--------------------------------------------
-Query: A7 : /site/people/person[phone or homepage]/name
-STATS: parsing xml document: 1.926184ms
-STATS: parsing XPath query: 0.077963ms
-STATS: compiling XPath query: 0.349045ms
-STATS: Query: /child::site/child::people/child::person[ child::phone or child::homepage ]/child::name
-STATS: Automaton:
-STATS: evaluating query: 8.936882ms
-STATS: serializing results: 1.462936ms
-STATS: 2 iterations
-STATS: automaton 0, cache2: 0 entries, cache6: 390 entries
-STATS: cache2: length: 0, used: 0, occupation: -nan
-STATS: cache4: length: 476, used: 86, occupation: 0.180672
-Diff: ok
--------------------------------------------
-Query: A8 : /site/people/person[address and (phone or homepage) and (creditcard or profile)]/name
-STATS: parsing xml document: 1.953840ms
-STATS: parsing XPath query: 0.122070ms
-STATS: compiling XPath query: 0.619173ms
-STATS: Query: /child::site/child::people/child::person[ child::address and (child::phone or child::homepage) and (child::creditcard or child::profile) ]/child::name
-STATS: Automaton:
-STATS: evaluating query: 8.347034ms
-STATS: serializing results: 1.598835ms
-STATS: 2 iterations
-STATS: automaton 0, cache2: 0 entries, cache6: 447 entries
-STATS: cache2: length: 0, used: 0, occupation: -nan
-STATS: cache4: length: 524, used: 77, occupation: 0.146947
-Diff: ok
--------------------------------------------
-Query: B1 : /site/regions/*/item[parent::namerica or parent::samerica]/name
-STATS: parsing xml document: 1.950026ms
-STATS: parsing XPath query: 0.125170ms
-STATS: compiling XPath query: 0.662088ms
-STATS: Query: /child::site/child::regions/child::*/child::item[ parent::namerica or parent::samerica ]/child::name
-STATS: Automaton:
-STATS: evaluating query: 11.601925ms
-STATS: serializing results: 1.575947ms
-STATS: 1 iterations
-STATS: automaton 0, cache2: 140 entries, cache6: 2553 entries
-STATS: cache2: length: 210, used: 70, occupation: 0.333333
-STATS: cache4: length: 2784, used: 231, occupation: 0.082974
-Diff: ok
--------------------------------------------
-Query: B2 : //keyword/ancestor::listitem/text/keyword
-STATS: parsing xml document: 1.987934ms
-STATS: parsing XPath query: 0.077963ms
-STATS: compiling XPath query: 0.348806ms
-STATS: Query: /descendant-or-self::node()/child::keyword/ancestor::listitem/child::text/child::keyword
-STATS: Automaton:
-STATS: evaluating query: 11.922836ms
-STATS: serializing results: 1.748085ms
-STATS: 2 iterations
-STATS: automaton 0, cache2: 0 entries, cache6: 1419 entries
-STATS: cache2: length: 0, used: 0, occupation: -nan
-STATS: cache4: length: 1595, used: 176, occupation: 0.110345
-Diff: ok
--------------------------------------------
-Query: B3 : /site/open_auctions/open_auction/bidder[following-sibling::bidder]
-STATS: parsing xml document: 1.918077ms
-STATS: parsing XPath query: 0.067949ms
-STATS: compiling XPath query: 0.304937ms
-STATS: Query: /child::site/child::open_auctions/child::open_auction/child::bidder[ following-sibling::bidder ]
-STATS: Automaton:
-STATS: evaluating query: 7.230997ms
-STATS: serializing results: 1.948118ms
-STATS: 1 iterations
-STATS: automaton 0, cache2: 140 entries, cache6: 2328 entries
-STATS: cache2: length: 210, used: 70, occupation: 0.333333
-STATS: cache4: length: 2549, used: 221, occupation: 0.086701
-Diff: ok
--------------------------------------------
-Query: B4 : /site/open_auctions/open_auction/bidder[preceding-sibling::bidder]
-STATS: parsing xml document: 1.932859ms
-STATS: parsing XPath query: 0.074863ms
-STATS: compiling XPath query: 0.307083ms
-STATS: Query: /child::site/child::open_auctions/child::open_auction/child::bidder[ preceding-sibling::bidder ]
-STATS: Automaton:
-STATS: evaluating query: 7.750034ms
-STATS: serializing results: 2.097130ms
-STATS: 1 iterations
-STATS: automaton 0, cache2: 140 entries, cache6: 1951 entries
-STATS: cache2: length: 210, used: 70, occupation: 0.333333
-STATS: cache4: length: 2138, used: 187, occupation: 0.087465
-Diff: ok
--------------------------------------------
-Query: B5 : /site/regions/*/item[following::item]/name
-STATS: parsing xml document: 1.893044ms
-STATS: parsing XPath query: 0.069857ms
-STATS: compiling XPath query: 0.560999ms
-STATS: Query: /child::site/child::regions/child::*/child::item[ ancestor-or-self::node()/following-sibling::node()/descendant-or-self::item ]/child::name
-STATS: Automaton:
-STATS: evaluating query: 15.329838ms
-STATS: serializing results: 1.600027ms
-STATS: 2 iterations
-STATS: automaton 0, cache2: 0 entries, cache6: 1374 entries
-STATS: cache2: length: 0, used: 0, occupation: -nan
-STATS: cache4: length: 1627, used: 253, occupation: 0.155501
-Diff: ok
--------------------------------------------
-Query: B6 : /site/regions/*/item[preceding::item]/name
-STATS: parsing xml document: 1.949072ms
-STATS: parsing XPath query: 0.104189ms
-STATS: compiling XPath query: 0.522137ms
-STATS: Query: /child::site/child::regions/child::*/child::item[ ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::item ]/child::name
-STATS: Automaton:
-STATS: evaluating query: 12.756824ms
-STATS: serializing results: 1.522064ms
-STATS: 1 iterations
-STATS: automaton 0, cache2: 140 entries, cache6: 3069 entries
-STATS: cache2: length: 210, used: 70, occupation: 0.333333
-STATS: cache4: length: 3392, used: 323, occupation: 0.095224
-Diff: ok
--------------------------------------------
-Query: B7 : //person[profile/@income]/name
-STATS: parsing xml document: 2.023935ms
-STATS: parsing XPath query: 0.070095ms
-STATS: compiling XPath query: 0.383854ms
-STATS: Query: /descendant-or-self::node()/child::person[ child::profile/attribute::@income ]/child::name
-STATS: Automaton:
-STATS: evaluating query: 7.132053ms
-STATS: serializing results: 1.590967ms
-STATS: 2 iterations
-STATS: automaton 0, cache2: 0 entries, cache6: 284 entries
-STATS: cache2: length: 0, used: 0, occupation: -nan
-STATS: cache4: length: 328, used: 44, occupation: 0.134146
-Diff: ok
--------------------------------------------
-Query: B8 : /site/open_auctions/open_auction[bidder and not(bidder/preceding-sibling::bidder)]/interval
-STATS: parsing xml document: 2.041101ms
-STATS: parsing XPath query: 0.100136ms
-STATS: compiling XPath query: 0.408888ms
-STATS: Query: /child::site/child::open_auctions/child::open_auction[ child::bidder and not(child::bidder/preceding-sibling::bidder) ]/child::interval
-STATS: Automaton:
-STATS: evaluating query: 10.506868ms
-STATS: serializing results: 1.502991ms
-STATS: 2 iterations
-STATS: automaton 0, cache2: 0 entries, cache6: 566 entries
-STATS: cache2: length: 0, used: 0, occupation: -nan
-STATS: cache4: length: 660, used: 94, occupation: 0.142424
-Diff: ok
--------------------------------------------
-Query: B9 : /site/open_auctions/open_auction[(not(bidder/following::bidder) or not(bidder/preceding::bidder)) or (bidder/following::bidder and bidder/preceding::bidder)]/interval
-STATS: parsing xml document: 2.124786ms
-STATS: parsing XPath query: 0.147104ms
-STATS: compiling XPath query: 1.192093ms
-STATS: Query: /child::site/child::open_auctions/child::open_auction[ not(child::bidder/ancestor-or-self::node()/following-sibling::node()/descendant-or-self::bidder) or not(child::bidder/ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::bidder) or child::bidder/ancestor-or-self::node()/following-sibling::node()/descendant-or-self::bidder and child::bidder/ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::bidder ]/child::interval
-STATS: Automaton:
-STATS: evaluating query: 21.920919ms
-STATS: serializing results: 1.502991ms
-STATS: 2 iterations
-STATS: automaton 0, cache2: 0 entries, cache6: 979 entries
-STATS: cache2: length: 0, used: 0, occupation: -nan
-STATS: cache4: length: 1253, used: 274, occupation: 0.218675
-Diff: ok
--------------------------------------------
-Query: B10 : /site/open_auctions/open_auction[(not(bidder/following::bidder) or not(bidder/preceding::bidder)) and (bidder/following::bidder and bidder/preceding::bidder)]/interval
-STATS: parsing xml document: 1.946926ms
-STATS: parsing XPath query: 0.142097ms
-STATS: compiling XPath query: 1.147032ms
-STATS: Query: /child::site/child::open_auctions/child::open_auction[ (not(child::bidder/ancestor-or-self::node()/following-sibling::node()/descendant-or-self::bidder) or not(child::bidder/ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::bidder)) and child::bidder/ancestor-or-self::node()/following-sibling::node()/descendant-or-self::bidder and child::bidder/ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::bidder ]/child::interval
-STATS: Automaton:
-STATS: evaluating query: 22.176027ms
-STATS: serializing results: 1.529932ms
-STATS: 2 iterations
-STATS: automaton 0, cache2: 0 entries, cache6: 980 entries
-STATS: cache2: length: 0, used: 0, occupation: -nan
-STATS: cache4: length: 1250, used: 270, occupation: 0.216000
-Diff: ok
--------------------------------------------
-Query: B11 : //open_auction/bidder/../bidder/../bidder/../interval
-STATS: parsing xml document: 1.973867ms
-STATS: parsing XPath query: 0.066042ms
-STATS: compiling XPath query: 0.635862ms
-STATS: Query: /descendant-or-self::node()/child::open_auction/child::bidder/parent::node()/child::bidder/parent::node()/child::bidder/parent::node()/child::interval
-STATS: Automaton:
-STATS: evaluating query: 14.349937ms
-STATS: serializing results: 1.570940ms
-STATS: 4 iterations
-STATS: automaton 0, cache2: 0 entries, cache6: 479 entries
-STATS: cache2: length: 0, used: 0, occupation: -nan
-STATS: cache4: length: 563, used: 84, occupation: 0.149201
-Diff: ok
--------------------------------------------
-Query: B12 : //item/@id/../@id/../@id/../@id/../name
-STATS: parsing xml document: 2.254009ms
-STATS: parsing XPath query: 0.074863ms
-STATS: compiling XPath query: 0.828981ms
-STATS: Query: /descendant-or-self::node()/child::item/attribute::@id/parent::node()/attribute::@id/parent::node()/attribute::@id/parent::node()/attribute::@id/parent::node()/child::name
-STATS: Automaton:
-STATS: evaluating query: 18.256903ms
-STATS: serializing results: 1.621962ms
-STATS: 5 iterations
-STATS: automaton 0, cache2: 0 entries, cache6: 725 entries
-STATS: cache2: length: 0, used: 0, occupation: -nan
-STATS: cache4: length: 820, used: 95, occupation: 0.115854
-Diff: ok
--------------------------------------------
-Query: B13 : //keyword/ancestor::parlist/descendant::keyword/ancestor::parlist/descendant::keyword/ancestor::parlist/descendant::keyword
-STATS: parsing xml document: 1.988888ms
-STATS: parsing XPath query: 0.113010ms
-STATS: compiling XPath query: 0.640869ms
-STATS: Query: /descendant-or-self::node()/child::keyword/ancestor::parlist/descendant::keyword/ancestor::parlist/descendant::keyword/ancestor::parlist/descendant::keyword
-STATS: Automaton:
-STATS: evaluating query: 22.742033ms
-STATS: serializing results: 1.921892ms
-STATS: 4 iterations
-STATS: automaton 0, cache2: 0 entries, cache6: 1491 entries
-STATS: cache2: length: 0, used: 0, occupation: -nan
-STATS: cache4: length: 1702, used: 211, occupation: 0.123972
-Diff: ok
--------------------------------------------