summaryrefslogtreecommitdiffstats
path: root/0.4.6/tests/core
diff options
context:
space:
mode:
Diffstat (limited to '0.4.6/tests/core')
-rw-r--r--0.4.6/tests/core/Makefile.am129
-rw-r--r--0.4.6/tests/core/saved/test_01.E.err0
-rw-r--r--0.4.6/tests/core/saved/test_01.E.out119
-rw-r--r--0.4.6/tests/core/saved/test_01.H.err0
-rw-r--r--0.4.6/tests/core/saved/test_01.H.out1
-rw-r--r--0.4.6/tests/core/saved/test_01.HIPx.err0
-rw-r--r--0.4.6/tests/core/saved/test_01.HIPx.out303
-rw-r--r--0.4.6/tests/core/saved/test_01.HP.err0
-rw-r--r--0.4.6/tests/core/saved/test_01.HP.out303
-rw-r--r--0.4.6/tests/core/saved/test_01.J.err0
-rw-r--r--0.4.6/tests/core/saved/test_01.J.out2
-rw-r--r--0.4.6/tests/core/saved/test_01.JP.err0
-rw-r--r--0.4.6/tests/core/saved/test_01.JP.out106
-rw-r--r--0.4.6/tests/core/saved/test_01.T.err0
-rw-r--r--0.4.6/tests/core/saved/test_01.T.out47
-rw-r--r--0.4.6/tests/core/saved/test_01.X.err0
-rw-r--r--0.4.6/tests/core/saved/test_01.X.out1
-rw-r--r--0.4.6/tests/core/saved/test_01.XP.err0
-rw-r--r--0.4.6/tests/core/saved/test_01.XP.out96
-rw-r--r--0.4.6/tests/core/saved/test_01.err0
-rw-r--r--0.4.6/tests/core/saved/test_01.out38
-rw-r--r--0.4.6/tests/core/saved/test_02.E.err0
-rw-r--r--0.4.6/tests/core/saved/test_02.E.out68
-rw-r--r--0.4.6/tests/core/saved/test_02.H.err0
-rw-r--r--0.4.6/tests/core/saved/test_02.H.out7
-rw-r--r--0.4.6/tests/core/saved/test_02.HIPx.err0
-rw-r--r--0.4.6/tests/core/saved/test_02.HIPx.out225
-rw-r--r--0.4.6/tests/core/saved/test_02.HP.err0
-rw-r--r--0.4.6/tests/core/saved/test_02.HP.out225
-rw-r--r--0.4.6/tests/core/saved/test_02.J.err0
-rw-r--r--0.4.6/tests/core/saved/test_02.J.out2
-rw-r--r--0.4.6/tests/core/saved/test_02.JP.err0
-rw-r--r--0.4.6/tests/core/saved/test_02.JP.out82
-rw-r--r--0.4.6/tests/core/saved/test_02.T.err1
-rw-r--r--0.4.6/tests/core/saved/test_02.T.out37
-rw-r--r--0.4.6/tests/core/saved/test_02.X.err0
-rw-r--r--0.4.6/tests/core/saved/test_02.X.out7
-rw-r--r--0.4.6/tests/core/saved/test_02.XP.err0
-rw-r--r--0.4.6/tests/core/saved/test_02.XP.out87
-rw-r--r--0.4.6/tests/core/saved/test_02.err0
-rw-r--r--0.4.6/tests/core/saved/test_02.out38
-rw-r--r--0.4.6/tests/core/saved/test_03.E.err0
-rw-r--r--0.4.6/tests/core/saved/test_03.E.out22
-rw-r--r--0.4.6/tests/core/saved/test_03.H.err0
-rw-r--r--0.4.6/tests/core/saved/test_03.H.out1
-rw-r--r--0.4.6/tests/core/saved/test_03.HIPx.err0
-rw-r--r--0.4.6/tests/core/saved/test_03.HIPx.out21
-rw-r--r--0.4.6/tests/core/saved/test_03.HP.err0
-rw-r--r--0.4.6/tests/core/saved/test_03.HP.out21
-rw-r--r--0.4.6/tests/core/saved/test_03.J.err0
-rw-r--r--0.4.6/tests/core/saved/test_03.J.out2
-rw-r--r--0.4.6/tests/core/saved/test_03.JP.err0
-rw-r--r--0.4.6/tests/core/saved/test_03.JP.out21
-rw-r--r--0.4.6/tests/core/saved/test_03.T.err0
-rw-r--r--0.4.6/tests/core/saved/test_03.T.out3
-rw-r--r--0.4.6/tests/core/saved/test_03.X.err0
-rw-r--r--0.4.6/tests/core/saved/test_03.X.out1
-rw-r--r--0.4.6/tests/core/saved/test_03.XP.err0
-rw-r--r--0.4.6/tests/core/saved/test_03.XP.out17
-rw-r--r--0.4.6/tests/core/saved/test_03.err0
-rw-r--r--0.4.6/tests/core/saved/test_03.out3
-rw-r--r--0.4.6/tests/core/saved/test_04.E.err0
-rw-r--r--0.4.6/tests/core/saved/test_04.E.out22
-rw-r--r--0.4.6/tests/core/saved/test_04.H.err0
-rw-r--r--0.4.6/tests/core/saved/test_04.H.out1
-rw-r--r--0.4.6/tests/core/saved/test_04.HIPx.err0
-rw-r--r--0.4.6/tests/core/saved/test_04.HIPx.out20
-rw-r--r--0.4.6/tests/core/saved/test_04.HP.err0
-rw-r--r--0.4.6/tests/core/saved/test_04.HP.out20
-rw-r--r--0.4.6/tests/core/saved/test_04.J.err0
-rw-r--r--0.4.6/tests/core/saved/test_04.J.out2
-rw-r--r--0.4.6/tests/core/saved/test_04.JP.err0
-rw-r--r--0.4.6/tests/core/saved/test_04.JP.out21
-rw-r--r--0.4.6/tests/core/saved/test_04.T.err0
-rw-r--r--0.4.6/tests/core/saved/test_04.T.out4
-rw-r--r--0.4.6/tests/core/saved/test_04.X.err0
-rw-r--r--0.4.6/tests/core/saved/test_04.X.out1
-rw-r--r--0.4.6/tests/core/saved/test_04.XP.err0
-rw-r--r--0.4.6/tests/core/saved/test_04.XP.out17
-rw-r--r--0.4.6/tests/core/saved/test_05.E.err0
-rw-r--r--0.4.6/tests/core/saved/test_05.E.out96
-rw-r--r--0.4.6/tests/core/saved/test_05.H.err0
-rw-r--r--0.4.6/tests/core/saved/test_05.H.out1
-rw-r--r--0.4.6/tests/core/saved/test_05.HIPx.err0
-rw-r--r--0.4.6/tests/core/saved/test_05.HIPx.out212
-rw-r--r--0.4.6/tests/core/saved/test_05.HP.err0
-rw-r--r--0.4.6/tests/core/saved/test_05.HP.out212
-rw-r--r--0.4.6/tests/core/saved/test_05.J.err0
-rw-r--r--0.4.6/tests/core/saved/test_05.J.out3
-rw-r--r--0.4.6/tests/core/saved/test_05.JP.err0
-rw-r--r--0.4.6/tests/core/saved/test_05.JP.out92
-rw-r--r--0.4.6/tests/core/saved/test_05.T.err0
-rw-r--r--0.4.6/tests/core/saved/test_05.T.out39
-rw-r--r--0.4.6/tests/core/saved/test_05.X.err0
-rw-r--r--0.4.6/tests/core/saved/test_05.X.out1
-rw-r--r--0.4.6/tests/core/saved/test_05.XP.err0
-rw-r--r--0.4.6/tests/core/saved/test_05.XP.out85
-rw-r--r--0.4.6/tests/core/saved/test_06.E.err0
-rw-r--r--0.4.6/tests/core/saved/test_06.E.out22
-rw-r--r--0.4.6/tests/core/saved/test_06.H.err0
-rw-r--r--0.4.6/tests/core/saved/test_06.H.out1
-rw-r--r--0.4.6/tests/core/saved/test_06.HIPx.err0
-rw-r--r--0.4.6/tests/core/saved/test_06.HIPx.out21
-rw-r--r--0.4.6/tests/core/saved/test_06.HP.err0
-rw-r--r--0.4.6/tests/core/saved/test_06.HP.out21
-rw-r--r--0.4.6/tests/core/saved/test_06.J.err0
-rw-r--r--0.4.6/tests/core/saved/test_06.J.out2
-rw-r--r--0.4.6/tests/core/saved/test_06.JP.err0
-rw-r--r--0.4.6/tests/core/saved/test_06.JP.out21
-rw-r--r--0.4.6/tests/core/saved/test_06.T.err0
-rw-r--r--0.4.6/tests/core/saved/test_06.T.out3
-rw-r--r--0.4.6/tests/core/saved/test_06.X.err0
-rw-r--r--0.4.6/tests/core/saved/test_06.X.out1
-rw-r--r--0.4.6/tests/core/saved/test_06.XP.err0
-rw-r--r--0.4.6/tests/core/saved/test_06.XP.out17
-rw-r--r--0.4.6/tests/core/saved/test_07.E.err0
-rw-r--r--0.4.6/tests/core/saved/test_07.E.out76
-rw-r--r--0.4.6/tests/core/saved/test_07.H.err0
-rw-r--r--0.4.6/tests/core/saved/test_07.H.out1
-rw-r--r--0.4.6/tests/core/saved/test_07.HIPx.err0
-rw-r--r--0.4.6/tests/core/saved/test_07.HIPx.out107
-rw-r--r--0.4.6/tests/core/saved/test_07.HP.err0
-rw-r--r--0.4.6/tests/core/saved/test_07.HP.out107
-rw-r--r--0.4.6/tests/core/saved/test_07.J.err0
-rw-r--r--0.4.6/tests/core/saved/test_07.J.out2
-rw-r--r--0.4.6/tests/core/saved/test_07.JP.err0
-rw-r--r--0.4.6/tests/core/saved/test_07.JP.out71
-rw-r--r--0.4.6/tests/core/saved/test_07.T.err0
-rw-r--r--0.4.6/tests/core/saved/test_07.T.out19
-rw-r--r--0.4.6/tests/core/saved/test_07.X.err0
-rw-r--r--0.4.6/tests/core/saved/test_07.X.out1
-rw-r--r--0.4.6/tests/core/saved/test_07.XP.err0
-rw-r--r--0.4.6/tests/core/saved/test_07.XP.out65
-rw-r--r--0.4.6/tests/core/saved/test_08.E.err18
-rw-r--r--0.4.6/tests/core/saved/test_08.E.out186
-rw-r--r--0.4.6/tests/core/saved/test_08.H.err18
-rw-r--r--0.4.6/tests/core/saved/test_08.H.out1
-rw-r--r--0.4.6/tests/core/saved/test_08.HIPx.err18
-rw-r--r--0.4.6/tests/core/saved/test_08.HIPx.out264
-rw-r--r--0.4.6/tests/core/saved/test_08.HP.err18
-rw-r--r--0.4.6/tests/core/saved/test_08.HP.out264
-rw-r--r--0.4.6/tests/core/saved/test_08.J.err18
-rw-r--r--0.4.6/tests/core/saved/test_08.J.out2
-rw-r--r--0.4.6/tests/core/saved/test_08.JP.err18
-rw-r--r--0.4.6/tests/core/saved/test_08.JP.out185
-rw-r--r--0.4.6/tests/core/saved/test_08.T.err18
-rw-r--r--0.4.6/tests/core/saved/test_08.T.out52
-rw-r--r--0.4.6/tests/core/saved/test_08.X.err18
-rw-r--r--0.4.6/tests/core/saved/test_08.X.out1
-rw-r--r--0.4.6/tests/core/saved/test_08.XP.err18
-rw-r--r--0.4.6/tests/core/saved/test_08.XP.out165
-rw-r--r--0.4.6/tests/core/saved/test_09.E.err0
-rw-r--r--0.4.6/tests/core/saved/test_09.E.out40
-rw-r--r--0.4.6/tests/core/saved/test_09.H.err0
-rw-r--r--0.4.6/tests/core/saved/test_09.H.out1
-rw-r--r--0.4.6/tests/core/saved/test_09.HIPx.err0
-rw-r--r--0.4.6/tests/core/saved/test_09.HIPx.out93
-rw-r--r--0.4.6/tests/core/saved/test_09.HP.err0
-rw-r--r--0.4.6/tests/core/saved/test_09.HP.out93
-rw-r--r--0.4.6/tests/core/saved/test_09.J.err0
-rw-r--r--0.4.6/tests/core/saved/test_09.J.out2
-rw-r--r--0.4.6/tests/core/saved/test_09.JP.err0
-rw-r--r--0.4.6/tests/core/saved/test_09.JP.out39
-rw-r--r--0.4.6/tests/core/saved/test_09.T.err0
-rw-r--r--0.4.6/tests/core/saved/test_09.T.out25
-rw-r--r--0.4.6/tests/core/saved/test_09.X.err0
-rw-r--r--0.4.6/tests/core/saved/test_09.X.out1
-rw-r--r--0.4.6/tests/core/saved/test_09.XP.err0
-rw-r--r--0.4.6/tests/core/saved/test_09.XP.out29
-rw-r--r--0.4.6/tests/core/saved/test_10.E.err0
-rw-r--r--0.4.6/tests/core/saved/test_10.E.out126
-rw-r--r--0.4.6/tests/core/saved/test_10.H.err0
-rw-r--r--0.4.6/tests/core/saved/test_10.H.out1
-rw-r--r--0.4.6/tests/core/saved/test_10.HIPx.err0
-rw-r--r--0.4.6/tests/core/saved/test_10.HIPx.out316
-rw-r--r--0.4.6/tests/core/saved/test_10.HP.err0
-rw-r--r--0.4.6/tests/core/saved/test_10.HP.out316
-rw-r--r--0.4.6/tests/core/saved/test_10.J.err0
-rw-r--r--0.4.6/tests/core/saved/test_10.J.out2
-rw-r--r--0.4.6/tests/core/saved/test_10.JP.err0
-rw-r--r--0.4.6/tests/core/saved/test_10.JP.out113
-rw-r--r--0.4.6/tests/core/saved/test_10.T.err0
-rw-r--r--0.4.6/tests/core/saved/test_10.T.out48
-rw-r--r--0.4.6/tests/core/saved/test_10.X.err0
-rw-r--r--0.4.6/tests/core/saved/test_10.X.out1
-rw-r--r--0.4.6/tests/core/saved/test_10.XP.err0
-rw-r--r--0.4.6/tests/core/saved/test_10.XP.out100
-rw-r--r--0.4.6/tests/core/saved/test_10.err0
-rw-r--r--0.4.6/tests/core/saved/test_10.out38
-rw-r--r--0.4.6/tests/core/saved/test_11.E.err0
-rw-r--r--0.4.6/tests/core/saved/test_11.E.out26
-rw-r--r--0.4.6/tests/core/saved/test_11.H.err0
-rw-r--r--0.4.6/tests/core/saved/test_11.H.out16
-rw-r--r--0.4.6/tests/core/saved/test_11.HIPx.err0
-rw-r--r--0.4.6/tests/core/saved/test_11.HIPx.out16
-rw-r--r--0.4.6/tests/core/saved/test_11.HP.err0
-rw-r--r--0.4.6/tests/core/saved/test_11.HP.out16
-rw-r--r--0.4.6/tests/core/saved/test_11.J.err0
-rw-r--r--0.4.6/tests/core/saved/test_11.J.out18
-rw-r--r--0.4.6/tests/core/saved/test_11.JP.err0
-rw-r--r--0.4.6/tests/core/saved/test_11.JP.out22
-rw-r--r--0.4.6/tests/core/saved/test_11.T.err0
-rw-r--r--0.4.6/tests/core/saved/test_11.T.out16
-rw-r--r--0.4.6/tests/core/saved/test_11.X.err0
-rw-r--r--0.4.6/tests/core/saved/test_11.X.out17
-rw-r--r--0.4.6/tests/core/saved/test_11.XP.err0
-rw-r--r--0.4.6/tests/core/saved/test_11.XP.out18
-rw-r--r--0.4.6/tests/core/test_01.c177
-rw-r--r--0.4.6/tests/core/test_02.c147
-rw-r--r--0.4.6/tests/core/test_03.c61
-rw-r--r--0.4.6/tests/core/test_04.c63
-rw-r--r--0.4.6/tests/core/test_05.c143
-rw-r--r--0.4.6/tests/core/test_06.c63
-rw-r--r--0.4.6/tests/core/test_07.c97
-rw-r--r--0.4.6/tests/core/test_08.c157
-rw-r--r--0.4.6/tests/core/test_09.c114
-rw-r--r--0.4.6/tests/core/test_10.c212
-rw-r--r--0.4.6/tests/core/test_11.c109
218 files changed, 7617 insertions, 0 deletions
diff --git a/0.4.6/tests/core/Makefile.am b/0.4.6/tests/core/Makefile.am
new file mode 100644
index 0000000..0131a6f
--- /dev/null
+++ b/0.4.6/tests/core/Makefile.am
@@ -0,0 +1,129 @@
+#
+# $Id$
+#
+# Copyright 2014, Juniper Networks, Inc.
+# All rights reserved.
+# This SOFTWARE is licensed under the LICENSE provided in the
+# ../Copyright file. By downloading, installing, copying, or otherwise
+# using the SOFTWARE, you agree to be bound by the terms of that
+# LICENSE.
+
+AM_CFLAGS = -I${top_srcdir} -I${top_srcdir}/libxo
+
+# Ick: maintained by hand!
+TEST_CASES = \
+test_01.c \
+test_02.c \
+test_03.c \
+test_04.c \
+test_05.c \
+test_06.c \
+test_07.c \
+test_08.c \
+test_09.c \
+test_10.c \
+test_11.c
+
+test_01_test_SOURCES = test_01.c
+test_02_test_SOURCES = test_02.c
+test_03_test_SOURCES = test_03.c
+test_04_test_SOURCES = test_04.c
+test_05_test_SOURCES = test_05.c
+test_06_test_SOURCES = test_06.c
+test_07_test_SOURCES = test_07.c
+test_08_test_SOURCES = test_08.c
+test_09_test_SOURCES = test_09.c
+test_10_test_SOURCES = test_10.c
+test_11_test_SOURCES = test_11.c
+
+# TEST_CASES := $(shell cd ${srcdir} ; echo *.c )
+
+noinst_PROGRAMS = ${TEST_CASES:.c=.test}
+
+LDADD = \
+ ${top_builddir}/libxo/libxo.la
+
+if HAVE_HUMANIZE_NUMBER
+LDADD += -lutil
+endif
+
+EXTRA_DIST = \
+ ${TEST_CASES} \
+ ${addprefix saved/, ${TEST_CASES:.c=.T.err}} \
+ ${addprefix saved/, ${TEST_CASES:.c=.T.out}} \
+ ${addprefix saved/, ${TEST_CASES:.c=.XP.err}} \
+ ${addprefix saved/, ${TEST_CASES:.c=.XP.out}} \
+ ${addprefix saved/, ${TEST_CASES:.c=.JP.err}} \
+ ${addprefix saved/, ${TEST_CASES:.c=.JP.out}} \
+ ${addprefix saved/, ${TEST_CASES:.c=.HP.err}} \
+ ${addprefix saved/, ${TEST_CASES:.c=.HP.out}} \
+ ${addprefix saved/, ${TEST_CASES:.c=.X.err}} \
+ ${addprefix saved/, ${TEST_CASES:.c=.X.out}} \
+ ${addprefix saved/, ${TEST_CASES:.c=.J.err}} \
+ ${addprefix saved/, ${TEST_CASES:.c=.J.out}} \
+ ${addprefix saved/, ${TEST_CASES:.c=.H.err}} \
+ ${addprefix saved/, ${TEST_CASES:.c=.H.out}} \
+ ${addprefix saved/, ${TEST_CASES:.c=.HIPx.err}} \
+ ${addprefix saved/, ${TEST_CASES:.c=.HIPx.out}}
+
+S2O = | ${SED} '1,/@@/d'
+
+all:
+
+valgrind:
+ @echo '## Running the regression tests under Valgrind'
+ ${MAKE} CHECKER='valgrind -q' tests
+
+#TEST_TRACE = set -x ;
+
+TEST_JIG = \
+ ${CHECKER} ./$$base.test ${TEST_OPTS} \
+ > out/$$base.$$fmt.out 2> out/$$base.$$fmt.err ; \
+ ${DIFF} -Nu ${srcdir}/saved/$$base.$$fmt.out out/$$base.$$fmt.out ${S2O} ; \
+ ${DIFF} -Nu ${srcdir}/saved/$$base.$$fmt.err out/$$base.$$fmt.err ${S2O}
+
+TEST_ONE = \
+ LIBXO_OPTIONS=:W$$fmt ${TEST_JIG}
+
+TEST_TWO = \
+ LIBXO_OPTIONS=warn,encoder=test ${TEST_JIG}
+
+TEST_FORMATS = T XP JP HP X J H HIPx
+
+test tests: ${bin_PROGRAMS}
+ @${MKDIR} -p out
+ -@ ${TEST_TRACE} (for test in ${TEST_CASES} ; do \
+ base=`${BASENAME} $$test .c` ; \
+ (for fmt in ${TEST_FORMATS}; do \
+ echo "... $$test ... $$fmt ..."; \
+ ${TEST_ONE}; \
+ true; \
+ done) ; \
+ (for fmt in E; do \
+ echo "... $$test ... $$fmt ..."; \
+ ${TEST_TWO}; \
+ true; \
+ done) \
+ done)
+
+one:
+ -@(test=${TEST_CASE}; data=${TEST_DATA}; ${TEST_ONE} ; true)
+
+accept:
+ -@(for test in ${TEST_CASES} ; do \
+ base=`${BASENAME} $$test .c` ; \
+ (for fmt in ${TEST_FORMATS} E; do \
+ echo "... $$test ... $$fmt ..."; \
+ ${CP} out/$$base.$$fmt.out ${srcdir}/saved/$$base.$$fmt.out ; \
+ ${CP} out/$$base.$$fmt.err ${srcdir}/saved/$$base.$$fmt.err ; \
+ done) \
+ done)
+
+.c.test:
+ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -o $@ $<
+
+CLEANFILES = ${TEST_CASES:.c=.test}
+CLEANDIRS = out
+
+clean-local:
+ rm -rf ${CLEANDIRS}
diff --git a/0.4.6/tests/core/saved/test_01.E.err b/0.4.6/tests/core/saved/test_01.E.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_01.E.err
diff --git a/0.4.6/tests/core/saved/test_01.E.out b/0.4.6/tests/core/saved/test_01.E.out
new file mode 100644
index 0000000..296a34e
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_01.E.out
@@ -0,0 +1,119 @@
+op create: [] []
+op open_container: [top] []
+op string: [host] [my-box]
+op string: [domain] [example.com]
+op attr: [test] [value]
+op open_container: [data] []
+op open_list: [item] []
+op attr: [test2] [value2]
+op open_instance: [item] []
+op attr: [test3] [value3]
+op string: [sku] [GRO-000-415]
+op string: [name] [gum]
+op content: [sold] [1412]
+op content: [in-stock] [54]
+op content: [on-order] [10]
+op close_instance: [item] []
+op open_instance: [item] []
+op attr: [test3] [value3]
+op string: [sku] [HRD-000-212]
+op string: [name] [rope]
+op content: [sold] [85]
+op content: [in-stock] [4]
+op content: [on-order] [2]
+op close_instance: [item] []
+op open_instance: [item] []
+op attr: [test3] [value3]
+op string: [sku] [HRD-000-517]
+op string: [name] [ladder]
+op content: [sold] [0]
+op content: [in-stock] [2]
+op content: [on-order] [1]
+op close_instance: [item] []
+op open_instance: [item] []
+op attr: [test3] [value3]
+op string: [sku] [HRD-000-632]
+op string: [name] [bolt]
+op content: [sold] [4123]
+op content: [in-stock] [144]
+op content: [on-order] [42]
+op close_instance: [item] []
+op open_instance: [item] []
+op attr: [test3] [value3]
+op string: [sku] [GRO-000-2331]
+op string: [name] [water]
+op content: [sold] [17]
+op content: [in-stock] [14]
+op content: [on-order] [2]
+op close_instance: [item] []
+op close_list: [item] []
+op close_container: [data] []
+op open_container: [data2] []
+op open_list: [item] []
+op open_instance: [item] []
+op string: [sku] [GRO-000-415]
+op string: [name] [gum]
+op content: [sold] [1412.0]
+op content: [in-stock] [54]
+op content: [on-order] [10]
+op close_instance: [item] []
+op open_instance: [item] []
+op string: [sku] [HRD-000-212]
+op string: [name] [rope]
+op content: [sold] [85.0]
+op content: [in-stock] [4]
+op content: [on-order] [2]
+op close_instance: [item] []
+op open_instance: [item] []
+op string: [sku] [HRD-000-517]
+op string: [name] [ladder]
+op content: [sold] [0]
+op content: [in-stock] [2]
+op content: [on-order] [1]
+op close_instance: [item] []
+op open_instance: [item] []
+op string: [sku] [HRD-000-632]
+op string: [name] [bolt]
+op content: [sold] [4123.0]
+op content: [in-stock] [144]
+op content: [on-order] [42]
+op close_instance: [item] []
+op open_instance: [item] []
+op string: [sku] [GRO-000-2331]
+op string: [name] [water]
+op content: [sold] [17.0]
+op content: [in-stock] [14]
+op content: [on-order] [2]
+op close_instance: [item] []
+op close_list: [item] []
+op close_container: [data2] []
+op open_container: [data3] []
+op open_list: [item] []
+op open_instance: [item] []
+op string: [sku] [GRO-000-533]
+op string: [name] [fish]
+op content: [sold] [1321.0]
+op content: [in-stock] [45]
+op content: [on-order] [1]
+op close_instance: [item] []
+op close_list: [item] []
+op close_container: [data3] []
+op open_container: [data4] []
+op open_list: [item] []
+op attr: [test4] [value4]
+op string: [item] [gum]
+op attr: [test4] [value4]
+op string: [item] [rope]
+op attr: [test4] [value4]
+op string: [item] [ladder]
+op attr: [test4] [value4]
+op string: [item] [bolt]
+op attr: [test4] [value4]
+op string: [item] [water]
+op close_list: [item] []
+op close_container: [data4] []
+op content: [cost] [425]
+op content: [cost] [455]
+op close_container: [top] []
+op finish: [] []
+op flush: [] []
diff --git a/0.4.6/tests/core/saved/test_01.H.err b/0.4.6/tests/core/saved/test_01.H.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_01.H.err
diff --git a/0.4.6/tests/core/saved/test_01.H.out b/0.4.6/tests/core/saved/test_01.H.out
new file mode 100644
index 0000000..ead320e
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_01.H.out
@@ -0,0 +1 @@
+<div class="line"><div class="text">Connecting to </div><div class="data" data-tag="host">my-box</div><div class="text">.</div><div class="data" data-tag="domain">example.com</div><div class="text">...</div></div><div class="line"><div class="title">Item </div><div class="title"> Total Sold</div><div class="title"> In Stock</div><div class="title"> On Order</div><div class="title"> SKU</div></div><div class="line"><div class="data" data-tag="name" data-key="key">gum </div><div class="data" data-tag="sold"> 1412</div><div class="data" data-tag="in-stock"> 54</div><div class="data" data-tag="on-order"> 10</div><div class="data" data-tag="sku" data-key="key"> GRO-000-415</div></div><div class="line"><div class="data" data-tag="name" data-key="key">rope </div><div class="data" data-tag="sold"> 85</div><div class="data" data-tag="in-stock"> 4</div><div class="data" data-tag="on-order"> 2</div><div class="data" data-tag="sku" data-key="key"> HRD-000-212</div></div><div class="line"><div class="data" data-tag="name" data-key="key">ladder </div><div class="data" data-tag="sold"> 0</div><div class="data" data-tag="in-stock"> 2</div><div class="data" data-tag="on-order"> 1</div><div class="data" data-tag="sku" data-key="key"> HRD-000-517</div></div><div class="line"><div class="data" data-tag="name" data-key="key">bolt </div><div class="data" data-tag="sold"> 4123</div><div class="data" data-tag="in-stock"> 144</div><div class="data" data-tag="on-order"> 42</div><div class="data" data-tag="sku" data-key="key"> HRD-000-632</div></div><div class="line"><div class="data" data-tag="name" data-key="key">water </div><div class="data" data-tag="sold"> 17</div><div class="data" data-tag="in-stock"> 14</div><div class="data" data-tag="on-order"> 2</div><div class="data" data-tag="sku" data-key="key"> GRO-000-2331</div></div><div class="line"></div><div class="line"></div><div class="line"><div class="label">Item</div><div class="text"> '</div><div class="data" data-tag="name" data-key="key">gum</div><div class="text">':</div></div><div class="line"><div class="padding"> </div><div class="label">Total sold</div><div class="text">: </div><div class="data" data-tag="sold">1412.0</div></div><div class="line"><div class="padding"> </div><div class="label">In stock</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="in-stock">54</div></div><div class="line"><div class="padding"> </div><div class="label">On order</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="on-order">10</div></div><div class="line"><div class="padding"> </div><div class="label">SKU</div><div class="text">: </div><div class="data" data-tag="sku" data-key="key">GRO-000-415</div></div><div class="line"><div class="label">Item</div><div class="text"> '</div><div class="data" data-tag="name" data-key="key">rope</div><div class="text">':</div></div><div class="line"><div class="padding"> </div><div class="label">Total sold</div><div class="text">: </div><div class="data" data-tag="sold">85.0</div></div><div class="line"><div class="padding"> </div><div class="label">In stock</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="in-stock">4</div></div><div class="line"><div class="padding"> </div><div class="label">On order</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="on-order">2</div></div><div class="line"><div class="padding"> </div><div class="label">SKU</div><div class="text">: </div><div class="data" data-tag="sku" data-key="key">HRD-000-212</div></div><div class="line"><div class="label">Item</div><div class="text"> '</div><div class="data" data-tag="name" data-key="key">ladder</div><div class="text">':</div></div><div class="line"><div class="padding"> </div><div class="label">Total sold</div><div class="text">: </div><div class="data" data-tag="sold">0</div></div><div class="line"><div class="padding"> </div><div class="label">In stock</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="in-stock">2</div></div><div class="line"><div class="padding"> </div><div class="label">On order</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="on-order">1</div></div><div class="line"><div class="padding"> </div><div class="label">SKU</div><div class="text">: </div><div class="data" data-tag="sku" data-key="key">HRD-000-517</div></div><div class="line"><div class="label">Item</div><div class="text"> '</div><div class="data" data-tag="name" data-key="key">bolt</div><div class="text">':</div></div><div class="line"><div class="padding"> </div><div class="label">Total sold</div><div class="text">: </div><div class="data" data-tag="sold">4123.0</div></div><div class="line"><div class="padding"> </div><div class="label">In stock</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="in-stock">144</div></div><div class="line"><div class="padding"> </div><div class="label">On order</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="on-order">42</div></div><div class="line"><div class="padding"> </div><div class="label">SKU</div><div class="text">: </div><div class="data" data-tag="sku" data-key="key">HRD-000-632</div></div><div class="line"><div class="label">Item</div><div class="text"> '</div><div class="data" data-tag="name" data-key="key">water</div><div class="text">':</div></div><div class="line"><div class="padding"> </div><div class="label">Total sold</div><div class="text">: </div><div class="data" data-tag="sold">17.0</div></div><div class="line"><div class="padding"> </div><div class="label">In stock</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="in-stock">14</div></div><div class="line"><div class="padding"> </div><div class="label">On order</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="on-order">2</div></div><div class="line"><div class="padding"> </div><div class="label">SKU</div><div class="text">: </div><div class="data" data-tag="sku" data-key="key">GRO-000-2331</div></div><div class="line"><div class="label">Item</div><div class="text"> '</div><div class="data" data-tag="name" data-key="key">fish</div><div class="text">':</div></div><div class="line"><div class="padding"> </div><div class="label">Total sold</div><div class="text">: </div><div class="data" data-tag="sold">1321.0</div></div><div class="line"><div class="padding"> </div><div class="label">In stock</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="in-stock">45</div></div><div class="line"><div class="padding"> </div><div class="label">On order</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="on-order">1</div></div><div class="line"><div class="padding"> </div><div class="label">SKU</div><div class="text">: </div><div class="data" data-tag="sku" data-key="key">GRO-000-533</div></div><div class="line"><div class="label">Item</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="item">gum</div></div><div class="line"><div class="label">Item</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="item">rope</div></div><div class="line"><div class="label">Item</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="item">ladder</div></div><div class="line"><div class="label">Item</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="item">bolt</div></div><div class="line"><div class="label">Item</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="item">water</div></div><div class="line"><div class="text">X</div><div class="text">X</div><div class="text">X</div><div class="text">X</div><div class="text">X</div><div class="text">X</div><div class="text">X</div><div class="text">X</div></div><div class="line"><div class="text">X</div><div class="padding"> </div><div class="text">X</div><div class="label">Cost</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="cost">425</div></div><div class="line"><div class="text">X</div><div class="padding"> </div><div class="text">X</div><div class="label">Cost</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="cost">455</div></div> \ No newline at end of file
diff --git a/0.4.6/tests/core/saved/test_01.HIPx.err b/0.4.6/tests/core/saved/test_01.HIPx.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_01.HIPx.err
diff --git a/0.4.6/tests/core/saved/test_01.HIPx.out b/0.4.6/tests/core/saved/test_01.HIPx.out
new file mode 100644
index 0000000..2b8e296
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_01.HIPx.out
@@ -0,0 +1,303 @@
+<div class="line">
+ <div class="text">Connecting to </div>
+ <div class="data" data-tag="host" data-xpath="/top/host">my-box</div>
+ <div class="text">.</div>
+ <div class="data" data-tag="domain" data-xpath="/top/domain">example.com</div>
+ <div class="text">...</div>
+</div>
+<div class="line">
+ <div class="title">Item </div>
+ <div class="title"> Total Sold</div>
+ <div class="title"> In Stock</div>
+ <div class="title"> On Order</div>
+ <div class="title"> SKU</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data/item/name" data-type="string" data-help="Name of the item" data-key="key">gum </div>
+ <div class="data" data-tag="sold" data-xpath="/top/data/item[sku = 'GRO-000-415'][name = 'gum']/sold" data-type="number" data-help="Number of items sold"> 1412</div>
+ <div class="data" data-tag="in-stock" data-xpath="/top/data/item[sku = 'GRO-000-415'][name = 'gum']/in-stock" data-type="number" data-help="Number of items in stock"> 54</div>
+ <div class="data" data-tag="on-order" data-xpath="/top/data/item[sku = 'GRO-000-415'][name = 'gum']/on-order" data-type="number" data-help="Number of items on order"> 10</div>
+ <div class="data" data-tag="sku" data-xpath="/top/data/item/sku" data-type="string" data-help="Stock Keeping Unit" data-key="key"> GRO-000-415</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data/item/name" data-type="string" data-help="Name of the item" data-key="key">rope </div>
+ <div class="data" data-tag="sold" data-xpath="/top/data/item[sku = 'HRD-000-212'][name = 'rope']/sold" data-type="number" data-help="Number of items sold"> 85</div>
+ <div class="data" data-tag="in-stock" data-xpath="/top/data/item[sku = 'HRD-000-212'][name = 'rope']/in-stock" data-type="number" data-help="Number of items in stock"> 4</div>
+ <div class="data" data-tag="on-order" data-xpath="/top/data/item[sku = 'HRD-000-212'][name = 'rope']/on-order" data-type="number" data-help="Number of items on order"> 2</div>
+ <div class="data" data-tag="sku" data-xpath="/top/data/item/sku" data-type="string" data-help="Stock Keeping Unit" data-key="key"> HRD-000-212</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data/item/name" data-type="string" data-help="Name of the item" data-key="key">ladder </div>
+ <div class="data" data-tag="sold" data-xpath="/top/data/item[sku = 'HRD-000-517'][name = 'ladder']/sold" data-type="number" data-help="Number of items sold"> 0</div>
+ <div class="data" data-tag="in-stock" data-xpath="/top/data/item[sku = 'HRD-000-517'][name = 'ladder']/in-stock" data-type="number" data-help="Number of items in stock"> 2</div>
+ <div class="data" data-tag="on-order" data-xpath="/top/data/item[sku = 'HRD-000-517'][name = 'ladder']/on-order" data-type="number" data-help="Number of items on order"> 1</div>
+ <div class="data" data-tag="sku" data-xpath="/top/data/item/sku" data-type="string" data-help="Stock Keeping Unit" data-key="key"> HRD-000-517</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data/item/name" data-type="string" data-help="Name of the item" data-key="key">bolt </div>
+ <div class="data" data-tag="sold" data-xpath="/top/data/item[sku = 'HRD-000-632'][name = 'bolt']/sold" data-type="number" data-help="Number of items sold"> 4123</div>
+ <div class="data" data-tag="in-stock" data-xpath="/top/data/item[sku = 'HRD-000-632'][name = 'bolt']/in-stock" data-type="number" data-help="Number of items in stock"> 144</div>
+ <div class="data" data-tag="on-order" data-xpath="/top/data/item[sku = 'HRD-000-632'][name = 'bolt']/on-order" data-type="number" data-help="Number of items on order"> 42</div>
+ <div class="data" data-tag="sku" data-xpath="/top/data/item/sku" data-type="string" data-help="Stock Keeping Unit" data-key="key"> HRD-000-632</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data/item/name" data-type="string" data-help="Name of the item" data-key="key">water </div>
+ <div class="data" data-tag="sold" data-xpath="/top/data/item[sku = 'GRO-000-2331'][name = 'water']/sold" data-type="number" data-help="Number of items sold"> 17</div>
+ <div class="data" data-tag="in-stock" data-xpath="/top/data/item[sku = 'GRO-000-2331'][name = 'water']/in-stock" data-type="number" data-help="Number of items in stock"> 14</div>
+ <div class="data" data-tag="on-order" data-xpath="/top/data/item[sku = 'GRO-000-2331'][name = 'water']/on-order" data-type="number" data-help="Number of items on order"> 2</div>
+ <div class="data" data-tag="sku" data-xpath="/top/data/item/sku" data-type="string" data-help="Stock Keeping Unit" data-key="key"> GRO-000-2331</div>
+</div>
+<div class="line">
+</div>
+<div class="line">
+</div>
+<div class="line">
+ <div class="label">Item</div>
+ <div class="text"> '</div>
+ <div class="data" data-tag="name" data-xpath="/top/data2/item/name" data-type="string" data-help="Name of the item" data-key="key">gum</div>
+ <div class="text">':</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">Total sold</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sold" data-xpath="/top/data2/item[sku = 'GRO-000-415'][name = 'gum']/sold" data-type="number" data-help="Number of items sold">1412.0</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">In stock</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="in-stock" data-xpath="/top/data2/item[sku = 'GRO-000-415'][name = 'gum']/in-stock" data-type="number" data-help="Number of items in stock">54</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">On order</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="on-order" data-xpath="/top/data2/item[sku = 'GRO-000-415'][name = 'gum']/on-order" data-type="number" data-help="Number of items on order">10</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">SKU</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sku" data-xpath="/top/data2/item/sku" data-type="string" data-help="Stock Keeping Unit" data-key="key">GRO-000-415</div>
+</div>
+<div class="line">
+ <div class="label">Item</div>
+ <div class="text"> '</div>
+ <div class="data" data-tag="name" data-xpath="/top/data2/item/name" data-type="string" data-help="Name of the item" data-key="key">rope</div>
+ <div class="text">':</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">Total sold</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sold" data-xpath="/top/data2/item[sku = 'HRD-000-212'][name = 'rope']/sold" data-type="number" data-help="Number of items sold">85.0</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">In stock</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="in-stock" data-xpath="/top/data2/item[sku = 'HRD-000-212'][name = 'rope']/in-stock" data-type="number" data-help="Number of items in stock">4</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">On order</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="on-order" data-xpath="/top/data2/item[sku = 'HRD-000-212'][name = 'rope']/on-order" data-type="number" data-help="Number of items on order">2</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">SKU</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sku" data-xpath="/top/data2/item/sku" data-type="string" data-help="Stock Keeping Unit" data-key="key">HRD-000-212</div>
+</div>
+<div class="line">
+ <div class="label">Item</div>
+ <div class="text"> '</div>
+ <div class="data" data-tag="name" data-xpath="/top/data2/item/name" data-type="string" data-help="Name of the item" data-key="key">ladder</div>
+ <div class="text">':</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">Total sold</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sold" data-xpath="/top/data2/item[sku = 'HRD-000-517'][name = 'ladder']/sold" data-type="number" data-help="Number of items sold">0</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">In stock</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="in-stock" data-xpath="/top/data2/item[sku = 'HRD-000-517'][name = 'ladder']/in-stock" data-type="number" data-help="Number of items in stock">2</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">On order</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="on-order" data-xpath="/top/data2/item[sku = 'HRD-000-517'][name = 'ladder']/on-order" data-type="number" data-help="Number of items on order">1</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">SKU</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sku" data-xpath="/top/data2/item/sku" data-type="string" data-help="Stock Keeping Unit" data-key="key">HRD-000-517</div>
+</div>
+<div class="line">
+ <div class="label">Item</div>
+ <div class="text"> '</div>
+ <div class="data" data-tag="name" data-xpath="/top/data2/item/name" data-type="string" data-help="Name of the item" data-key="key">bolt</div>
+ <div class="text">':</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">Total sold</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sold" data-xpath="/top/data2/item[sku = 'HRD-000-632'][name = 'bolt']/sold" data-type="number" data-help="Number of items sold">4123.0</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">In stock</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="in-stock" data-xpath="/top/data2/item[sku = 'HRD-000-632'][name = 'bolt']/in-stock" data-type="number" data-help="Number of items in stock">144</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">On order</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="on-order" data-xpath="/top/data2/item[sku = 'HRD-000-632'][name = 'bolt']/on-order" data-type="number" data-help="Number of items on order">42</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">SKU</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sku" data-xpath="/top/data2/item/sku" data-type="string" data-help="Stock Keeping Unit" data-key="key">HRD-000-632</div>
+</div>
+<div class="line">
+ <div class="label">Item</div>
+ <div class="text"> '</div>
+ <div class="data" data-tag="name" data-xpath="/top/data2/item/name" data-type="string" data-help="Name of the item" data-key="key">water</div>
+ <div class="text">':</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">Total sold</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sold" data-xpath="/top/data2/item[sku = 'GRO-000-2331'][name = 'water']/sold" data-type="number" data-help="Number of items sold">17.0</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">In stock</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="in-stock" data-xpath="/top/data2/item[sku = 'GRO-000-2331'][name = 'water']/in-stock" data-type="number" data-help="Number of items in stock">14</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">On order</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="on-order" data-xpath="/top/data2/item[sku = 'GRO-000-2331'][name = 'water']/on-order" data-type="number" data-help="Number of items on order">2</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">SKU</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sku" data-xpath="/top/data2/item/sku" data-type="string" data-help="Stock Keeping Unit" data-key="key">GRO-000-2331</div>
+</div>
+<div class="line">
+ <div class="label">Item</div>
+ <div class="text"> '</div>
+ <div class="data" data-tag="name" data-xpath="/top/data3/item/name" data-type="string" data-help="Name of the item" data-key="key">fish</div>
+ <div class="text">':</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">Total sold</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sold" data-xpath="/top/data3/item[sku = 'GRO-000-533'][name = 'fish']/sold" data-type="number" data-help="Number of items sold">1321.0</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">In stock</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="in-stock" data-xpath="/top/data3/item[sku = 'GRO-000-533'][name = 'fish']/in-stock" data-type="number" data-help="Number of items in stock">45</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">On order</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="on-order" data-xpath="/top/data3/item[sku = 'GRO-000-533'][name = 'fish']/on-order" data-type="number" data-help="Number of items on order">1</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">SKU</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sku" data-xpath="/top/data3/item/sku" data-type="string" data-help="Stock Keeping Unit" data-key="key">GRO-000-533</div>
+</div>
+<div class="line">
+ <div class="label">Item</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="item" data-xpath="/top/data4/item">gum</div>
+</div>
+<div class="line">
+ <div class="label">Item</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="item" data-xpath="/top/data4/item">rope</div>
+</div>
+<div class="line">
+ <div class="label">Item</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="item" data-xpath="/top/data4/item">ladder</div>
+</div>
+<div class="line">
+ <div class="label">Item</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="item" data-xpath="/top/data4/item">bolt</div>
+</div>
+<div class="line">
+ <div class="label">Item</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="item" data-xpath="/top/data4/item">water</div>
+</div>
+<div class="line">
+ <div class="text">X</div>
+ <div class="text">X</div>
+ <div class="text">X</div>
+ <div class="text">X</div>
+ <div class="text">X</div>
+ <div class="text">X</div>
+ <div class="text">X</div>
+ <div class="text">X</div>
+</div>
+<div class="line">
+ <div class="text">X</div>
+ <div class="padding"> </div>
+ <div class="text">X</div>
+ <div class="label">Cost</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="cost" data-xpath="/top/cost">425</div>
+</div>
+<div class="line">
+ <div class="text">X</div>
+ <div class="padding"> </div>
+ <div class="text">X</div>
+ <div class="label">Cost</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="cost" data-xpath="/top/cost">455</div>
+</div>
diff --git a/0.4.6/tests/core/saved/test_01.HP.err b/0.4.6/tests/core/saved/test_01.HP.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_01.HP.err
diff --git a/0.4.6/tests/core/saved/test_01.HP.out b/0.4.6/tests/core/saved/test_01.HP.out
new file mode 100644
index 0000000..c8f2dbc
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_01.HP.out
@@ -0,0 +1,303 @@
+<div class="line">
+ <div class="text">Connecting to </div>
+ <div class="data" data-tag="host">my-box</div>
+ <div class="text">.</div>
+ <div class="data" data-tag="domain">example.com</div>
+ <div class="text">...</div>
+</div>
+<div class="line">
+ <div class="title">Item </div>
+ <div class="title"> Total Sold</div>
+ <div class="title"> In Stock</div>
+ <div class="title"> On Order</div>
+ <div class="title"> SKU</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">gum </div>
+ <div class="data" data-tag="sold"> 1412</div>
+ <div class="data" data-tag="in-stock"> 54</div>
+ <div class="data" data-tag="on-order"> 10</div>
+ <div class="data" data-tag="sku" data-key="key"> GRO-000-415</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">rope </div>
+ <div class="data" data-tag="sold"> 85</div>
+ <div class="data" data-tag="in-stock"> 4</div>
+ <div class="data" data-tag="on-order"> 2</div>
+ <div class="data" data-tag="sku" data-key="key"> HRD-000-212</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">ladder </div>
+ <div class="data" data-tag="sold"> 0</div>
+ <div class="data" data-tag="in-stock"> 2</div>
+ <div class="data" data-tag="on-order"> 1</div>
+ <div class="data" data-tag="sku" data-key="key"> HRD-000-517</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">bolt </div>
+ <div class="data" data-tag="sold"> 4123</div>
+ <div class="data" data-tag="in-stock"> 144</div>
+ <div class="data" data-tag="on-order"> 42</div>
+ <div class="data" data-tag="sku" data-key="key"> HRD-000-632</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">water </div>
+ <div class="data" data-tag="sold"> 17</div>
+ <div class="data" data-tag="in-stock"> 14</div>
+ <div class="data" data-tag="on-order"> 2</div>
+ <div class="data" data-tag="sku" data-key="key"> GRO-000-2331</div>
+</div>
+<div class="line">
+</div>
+<div class="line">
+</div>
+<div class="line">
+ <div class="label">Item</div>
+ <div class="text"> '</div>
+ <div class="data" data-tag="name" data-key="key">gum</div>
+ <div class="text">':</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">Total sold</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sold">1412.0</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">In stock</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="in-stock">54</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">On order</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="on-order">10</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">SKU</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sku" data-key="key">GRO-000-415</div>
+</div>
+<div class="line">
+ <div class="label">Item</div>
+ <div class="text"> '</div>
+ <div class="data" data-tag="name" data-key="key">rope</div>
+ <div class="text">':</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">Total sold</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sold">85.0</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">In stock</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="in-stock">4</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">On order</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="on-order">2</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">SKU</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sku" data-key="key">HRD-000-212</div>
+</div>
+<div class="line">
+ <div class="label">Item</div>
+ <div class="text"> '</div>
+ <div class="data" data-tag="name" data-key="key">ladder</div>
+ <div class="text">':</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">Total sold</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sold">0</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">In stock</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="in-stock">2</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">On order</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="on-order">1</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">SKU</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sku" data-key="key">HRD-000-517</div>
+</div>
+<div class="line">
+ <div class="label">Item</div>
+ <div class="text"> '</div>
+ <div class="data" data-tag="name" data-key="key">bolt</div>
+ <div class="text">':</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">Total sold</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sold">4123.0</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">In stock</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="in-stock">144</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">On order</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="on-order">42</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">SKU</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sku" data-key="key">HRD-000-632</div>
+</div>
+<div class="line">
+ <div class="label">Item</div>
+ <div class="text"> '</div>
+ <div class="data" data-tag="name" data-key="key">water</div>
+ <div class="text">':</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">Total sold</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sold">17.0</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">In stock</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="in-stock">14</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">On order</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="on-order">2</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">SKU</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sku" data-key="key">GRO-000-2331</div>
+</div>
+<div class="line">
+ <div class="label">Item</div>
+ <div class="text"> '</div>
+ <div class="data" data-tag="name" data-key="key">fish</div>
+ <div class="text">':</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">Total sold</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sold">1321.0</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">In stock</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="in-stock">45</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">On order</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="on-order">1</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">SKU</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sku" data-key="key">GRO-000-533</div>
+</div>
+<div class="line">
+ <div class="label">Item</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="item">gum</div>
+</div>
+<div class="line">
+ <div class="label">Item</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="item">rope</div>
+</div>
+<div class="line">
+ <div class="label">Item</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="item">ladder</div>
+</div>
+<div class="line">
+ <div class="label">Item</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="item">bolt</div>
+</div>
+<div class="line">
+ <div class="label">Item</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="item">water</div>
+</div>
+<div class="line">
+ <div class="text">X</div>
+ <div class="text">X</div>
+ <div class="text">X</div>
+ <div class="text">X</div>
+ <div class="text">X</div>
+ <div class="text">X</div>
+ <div class="text">X</div>
+ <div class="text">X</div>
+</div>
+<div class="line">
+ <div class="text">X</div>
+ <div class="padding"> </div>
+ <div class="text">X</div>
+ <div class="label">Cost</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="cost">425</div>
+</div>
+<div class="line">
+ <div class="text">X</div>
+ <div class="padding"> </div>
+ <div class="text">X</div>
+ <div class="label">Cost</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="cost">455</div>
+</div>
diff --git a/0.4.6/tests/core/saved/test_01.J.err b/0.4.6/tests/core/saved/test_01.J.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_01.J.err
diff --git a/0.4.6/tests/core/saved/test_01.J.out b/0.4.6/tests/core/saved/test_01.J.out
new file mode 100644
index 0000000..69e3faa
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_01.J.out
@@ -0,0 +1,2 @@
+{"top": {"host":"my-box","domain":"example.com", "data": {"item": [{"sku":"GRO-000-415","name":"gum","sold":1412,"in-stock":54,"on-order":10}, {"sku":"HRD-000-212","name":"rope","sold":85,"in-stock":4,"on-order":2}, {"sku":"HRD-000-517","name":"ladder","sold":0,"in-stock":2,"on-order":1}, {"sku":"HRD-000-632","name":"bolt","sold":4123,"in-stock":144,"on-order":42}, {"sku":"GRO-000-2331","name":"water","sold":17,"in-stock":14,"on-order":2}]}, "data2": {"item": [{"sku":"GRO-000-415","name":"gum","sold":1412.0,"in-stock":54,"on-order":10}, {"sku":"HRD-000-212","name":"rope","sold":85.0,"in-stock":4,"on-order":2}, {"sku":"HRD-000-517","name":"ladder","sold":0,"in-stock":2,"on-order":1}, {"sku":"HRD-000-632","name":"bolt","sold":4123.0,"in-stock":144,"on-order":42}, {"sku":"GRO-000-2331","name":"water","sold":17.0,"in-stock":14,"on-order":2}]}, "data3": {"item": [{"sku":"GRO-000-533","name":"fish","sold":1321.0,"in-stock":45,"on-order":1}]}, "data4": {"item": ["gum","rope","ladder","bolt","water"]},"cost":425,"cost":455}
+}
diff --git a/0.4.6/tests/core/saved/test_01.JP.err b/0.4.6/tests/core/saved/test_01.JP.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_01.JP.err
diff --git a/0.4.6/tests/core/saved/test_01.JP.out b/0.4.6/tests/core/saved/test_01.JP.out
new file mode 100644
index 0000000..e65897f
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_01.JP.out
@@ -0,0 +1,106 @@
+{
+ "top": {
+ "host": "my-box",
+ "domain": "example.com",
+ "data": {
+ "item": [
+ {
+ "sku": "GRO-000-415",
+ "name": "gum",
+ "sold": 1412,
+ "in-stock": 54,
+ "on-order": 10
+ },
+ {
+ "sku": "HRD-000-212",
+ "name": "rope",
+ "sold": 85,
+ "in-stock": 4,
+ "on-order": 2
+ },
+ {
+ "sku": "HRD-000-517",
+ "name": "ladder",
+ "sold": 0,
+ "in-stock": 2,
+ "on-order": 1
+ },
+ {
+ "sku": "HRD-000-632",
+ "name": "bolt",
+ "sold": 4123,
+ "in-stock": 144,
+ "on-order": 42
+ },
+ {
+ "sku": "GRO-000-2331",
+ "name": "water",
+ "sold": 17,
+ "in-stock": 14,
+ "on-order": 2
+ }
+ ]
+ },
+ "data2": {
+ "item": [
+ {
+ "sku": "GRO-000-415",
+ "name": "gum",
+ "sold": 1412.0,
+ "in-stock": 54,
+ "on-order": 10
+ },
+ {
+ "sku": "HRD-000-212",
+ "name": "rope",
+ "sold": 85.0,
+ "in-stock": 4,
+ "on-order": 2
+ },
+ {
+ "sku": "HRD-000-517",
+ "name": "ladder",
+ "sold": 0,
+ "in-stock": 2,
+ "on-order": 1
+ },
+ {
+ "sku": "HRD-000-632",
+ "name": "bolt",
+ "sold": 4123.0,
+ "in-stock": 144,
+ "on-order": 42
+ },
+ {
+ "sku": "GRO-000-2331",
+ "name": "water",
+ "sold": 17.0,
+ "in-stock": 14,
+ "on-order": 2
+ }
+ ]
+ },
+ "data3": {
+ "item": [
+ {
+ "sku": "GRO-000-533",
+ "name": "fish",
+ "sold": 1321.0,
+ "in-stock": 45,
+ "on-order": 1
+ }
+ ]
+ },
+ "data4": {
+ "item": [
+ "gum",
+ "rope",
+ "ladder",
+ "bolt",
+ "water"
+ ]
+ },
+ "cost": 425,
+ "cost": 455
+ }
+}
diff --git a/0.4.6/tests/core/saved/test_01.T.err b/0.4.6/tests/core/saved/test_01.T.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_01.T.err
diff --git a/0.4.6/tests/core/saved/test_01.T.out b/0.4.6/tests/core/saved/test_01.T.out
new file mode 100644
index 0000000..2ecf537
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_01.T.out
@@ -0,0 +1,47 @@
+Connecting to my-box.example.com...
+Item Total Sold In Stock On Order SKU
+gum 1412 54 10 GRO-000-415
+rope 85 4 2 HRD-000-212
+ladder 0 2 1 HRD-000-517
+bolt 4123 144 42 HRD-000-632
+water 17 14 2 GRO-000-2331
+
+
+Item 'gum':
+ Total sold: 1412.0
+ In stock: 54
+ On order: 10
+ SKU: GRO-000-415
+Item 'rope':
+ Total sold: 85.0
+ In stock: 4
+ On order: 2
+ SKU: HRD-000-212
+Item 'ladder':
+ Total sold: 0
+ In stock: 2
+ On order: 1
+ SKU: HRD-000-517
+Item 'bolt':
+ Total sold: 4123.0
+ In stock: 144
+ On order: 42
+ SKU: HRD-000-632
+Item 'water':
+ Total sold: 17.0
+ In stock: 14
+ On order: 2
+ SKU: GRO-000-2331
+Item 'fish':
+ Total sold: 1321.0
+ In stock: 45
+ On order: 1
+ SKU: GRO-000-533
+Item: gum
+Item: rope
+Item: ladder
+Item: bolt
+Item: water
+XXXXXXXX
+X XCost: 425
+X XCost: 455
diff --git a/0.4.6/tests/core/saved/test_01.X.err b/0.4.6/tests/core/saved/test_01.X.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_01.X.err
diff --git a/0.4.6/tests/core/saved/test_01.X.out b/0.4.6/tests/core/saved/test_01.X.out
new file mode 100644
index 0000000..46f501e2
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_01.X.out
@@ -0,0 +1 @@
+<top><host>my-box</host><domain>example.com</domain><data test="value"><item test2="value2"><sku test3="value3" key="key">GRO-000-415</sku><name key="key">gum</name><sold>1412</sold><in-stock>54</in-stock><on-order>10</on-order></item><item><sku test3="value3" key="key">HRD-000-212</sku><name key="key">rope</name><sold>85</sold><in-stock>4</in-stock><on-order>2</on-order></item><item><sku test3="value3" key="key">HRD-000-517</sku><name key="key">ladder</name><sold>0</sold><in-stock>2</in-stock><on-order>1</on-order></item><item><sku test3="value3" key="key">HRD-000-632</sku><name key="key">bolt</name><sold>4123</sold><in-stock>144</in-stock><on-order>42</on-order></item><item><sku test3="value3" key="key">GRO-000-2331</sku><name key="key">water</name><sold>17</sold><in-stock>14</in-stock><on-order>2</on-order></item></data><data2><item><sku key="key">GRO-000-415</sku><name key="key">gum</name><sold>1412.0</sold><in-stock>54</in-stock><on-order>10</on-order></item><item><sku key="key">HRD-000-212</sku><name key="key">rope</name><sold>85.0</sold><in-stock>4</in-stock><on-order>2</on-order></item><item><sku key="key">HRD-000-517</sku><name key="key">ladder</name><sold>0</sold><in-stock>2</in-stock><on-order>1</on-order></item><item><sku key="key">HRD-000-632</sku><name key="key">bolt</name><sold>4123.0</sold><in-stock>144</in-stock><on-order>42</on-order></item><item><sku key="key">GRO-000-2331</sku><name key="key">water</name><sold>17.0</sold><in-stock>14</in-stock><on-order>2</on-order></item></data2><data3><item><sku key="key">GRO-000-533</sku><name key="key">fish</name><sold>1321.0</sold><in-stock>45</in-stock><on-order>1</on-order></item></data3><data4><item test4="value4">gum</item><item test4="value4">rope</item><item test4="value4">ladder</item><item test4="value4">bolt</item><item test4="value4">water</item></data4><cost>425</cost><cost>455</cost></top> \ No newline at end of file
diff --git a/0.4.6/tests/core/saved/test_01.XP.err b/0.4.6/tests/core/saved/test_01.XP.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_01.XP.err
diff --git a/0.4.6/tests/core/saved/test_01.XP.out b/0.4.6/tests/core/saved/test_01.XP.out
new file mode 100644
index 0000000..c7f4bfe8
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_01.XP.out
@@ -0,0 +1,96 @@
+<top>
+ <host>my-box</host>
+ <domain>example.com</domain>
+ <data test="value">
+ <item test2="value2">
+ <sku test3="value3" key="key">GRO-000-415</sku>
+ <name key="key">gum</name>
+ <sold>1412</sold>
+ <in-stock>54</in-stock>
+ <on-order>10</on-order>
+ </item>
+ <item>
+ <sku test3="value3" key="key">HRD-000-212</sku>
+ <name key="key">rope</name>
+ <sold>85</sold>
+ <in-stock>4</in-stock>
+ <on-order>2</on-order>
+ </item>
+ <item>
+ <sku test3="value3" key="key">HRD-000-517</sku>
+ <name key="key">ladder</name>
+ <sold>0</sold>
+ <in-stock>2</in-stock>
+ <on-order>1</on-order>
+ </item>
+ <item>
+ <sku test3="value3" key="key">HRD-000-632</sku>
+ <name key="key">bolt</name>
+ <sold>4123</sold>
+ <in-stock>144</in-stock>
+ <on-order>42</on-order>
+ </item>
+ <item>
+ <sku test3="value3" key="key">GRO-000-2331</sku>
+ <name key="key">water</name>
+ <sold>17</sold>
+ <in-stock>14</in-stock>
+ <on-order>2</on-order>
+ </item>
+ </data>
+ <data2>
+ <item>
+ <sku key="key">GRO-000-415</sku>
+ <name key="key">gum</name>
+ <sold>1412.0</sold>
+ <in-stock>54</in-stock>
+ <on-order>10</on-order>
+ </item>
+ <item>
+ <sku key="key">HRD-000-212</sku>
+ <name key="key">rope</name>
+ <sold>85.0</sold>
+ <in-stock>4</in-stock>
+ <on-order>2</on-order>
+ </item>
+ <item>
+ <sku key="key">HRD-000-517</sku>
+ <name key="key">ladder</name>
+ <sold>0</sold>
+ <in-stock>2</in-stock>
+ <on-order>1</on-order>
+ </item>
+ <item>
+ <sku key="key">HRD-000-632</sku>
+ <name key="key">bolt</name>
+ <sold>4123.0</sold>
+ <in-stock>144</in-stock>
+ <on-order>42</on-order>
+ </item>
+ <item>
+ <sku key="key">GRO-000-2331</sku>
+ <name key="key">water</name>
+ <sold>17.0</sold>
+ <in-stock>14</in-stock>
+ <on-order>2</on-order>
+ </item>
+ </data2>
+ <data3>
+ <item>
+ <sku key="key">GRO-000-533</sku>
+ <name key="key">fish</name>
+ <sold>1321.0</sold>
+ <in-stock>45</in-stock>
+ <on-order>1</on-order>
+ </item>
+ </data3>
+ <data4>
+ <item test4="value4">gum</item>
+ <item test4="value4">rope</item>
+ <item test4="value4">ladder</item>
+ <item test4="value4">bolt</item>
+ <item test4="value4">water</item>
+ </data4>
+ <cost>425</cost>
+ <cost>455</cost>
+</top>
diff --git a/0.4.6/tests/core/saved/test_01.err b/0.4.6/tests/core/saved/test_01.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_01.err
diff --git a/0.4.6/tests/core/saved/test_01.out b/0.4.6/tests/core/saved/test_01.out
new file mode 100644
index 0000000..c2ad7a0
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_01.out
@@ -0,0 +1,38 @@
+Item Total Sold In Stock On Order SKU
+gum 1412 54 10 GRO-000-415
+rope 85 4 2 HRD-000-212
+ladder 0 2 1 HRD-000-517
+bolt 4123 144 42 HRD-000-632
+water 17 14 2 GRO-000-2331
+
+
+Item 'gum':
+ Total sold: 1412.0
+ In stock: 54
+ On order: 10
+ SKU: GRO-000-415
+Item 'rope':
+ Total sold: 85.0
+ In stock: 4
+ On order: 2
+ SKU: HRD-000-212
+Item 'ladder':
+ Total sold: 0
+ In stock: 2
+ On order: 1
+ SKU: HRD-000-517
+Item 'bolt':
+ Total sold: 4123.0
+ In stock: 144
+ On order: 42
+ SKU: HRD-000-632
+Item 'water':
+ Total sold: 17.0
+ In stock: 14
+ On order: 2
+ SKU: GRO-000-2331
+Item 'fish':
+ Total sold: 1321.0
+ In stock: 45
+ On order: 1
+ SKU: GRO-000-533
diff --git a/0.4.6/tests/core/saved/test_02.E.err b/0.4.6/tests/core/saved/test_02.E.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_02.E.err
diff --git a/0.4.6/tests/core/saved/test_02.E.out b/0.4.6/tests/core/saved/test_02.E.out
new file mode 100644
index 0000000..9e1ec96
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_02.E.out
@@ -0,0 +1,68 @@
+op create: [] []
+op open_container: [top] []
+op open_container: [data] []
+op string: [what] [braces]
+op string: [length] [abcdef]
+op content: [fd] [-1]
+op string: [error] [Bad file descriptor]
+op string: [test] [good]
+op content: [fd] [-1]
+op string: [error] [Bad fi]
+op string: [test] [good]
+op content: [lines] [20]
+op content: [words] [30]
+op content: [characters] [40]
+op open_leaf_list: [bytes] []
+op content: [bytes] [0]
+op content: [bytes] [1]
+op content: [bytes] [2]
+op content: [bytes] [3]
+op content: [bytes] [4]
+op close_leaf_list: [bytes] []
+op content: [mbuf-current] [10]
+op content: [mbuf-cache] [20]
+op content: [mbuf-total] [30]
+op content: [distance] [50]
+op string: [location] [Boston]
+op content: [memory] [64]
+op content: [total] [640]
+op content: [memory] [64]
+op content: [total] [640]
+op content: [ten] [10]
+op content: [eleven] [11]
+op content: [unknown] [1010]
+op content: [unknown] [1010]
+op content: [min] [15]
+op content: [cur] [20]
+op content: [max] [30]
+op content: [min] [15]
+op content: [cur] [20]
+op content: [max] [125]
+op content: [min] [15]
+op content: [cur] [20]
+op content: [max] [125]
+op content: [min] [15]
+op content: [cur] [20]
+op content: [max] [125]
+op content: [val1] [21]
+op content: [val2] [58368]
+op content: [val3] [100663296]
+op content: [val4] [44470272]
+op content: [val5] [1342172800]
+op open_list: [flag] []
+op string: [flag] [one]
+op string: [flag] [two]
+op string: [flag] [three]
+op close_list: [flag] []
+op content: [works] [null]
+op content: [empty-tag] [true]
+op string: [t1] [1000]
+op string: [t2] [test5000]
+op string: [t3] [ten-longx]
+op string: [t4] [xtest]
+op content: [count] [10]
+op content: [test] [4]
+op close_container: [data] []
+op close_container: [top] []
+op finish: [] []
+op flush: [] []
diff --git a/0.4.6/tests/core/saved/test_02.H.err b/0.4.6/tests/core/saved/test_02.H.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_02.H.err
diff --git a/0.4.6/tests/core/saved/test_02.H.out b/0.4.6/tests/core/saved/test_02.H.out
new file mode 100644
index 0000000..f1387a6
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_02.H.out
@@ -0,0 +1,7 @@
+<div class="line"><div class="text">We are </div><div class="text">{emit}</div><div class="text">{ting}</div><div class="text"> some </div><div class="data" data-tag="what">braces</div></div><div class="line"><div class="message">abcdef
+</div></div><div class="line"><div class="message">abcdef: Bad file descriptor
+</div></div><div class="line"><div class="message">improper use of profanity; ten yard penalty; first down
+</div></div><div class="line"><div class="text">length </div><div class="data" data-tag="length">abcdef</div></div><div class="line"><div class="text">close </div><div class="data" data-tag="fd">-1</div><div class="text"> returned </div><div class="data" data-tag="error">Bad file descriptor</div><div class="text"> </div><div class="data" data-tag="test">good</div></div><div class="line"><div class="text">close </div><div class="data" data-tag="fd">-1</div><div class="text"> returned </div><div class="data" data-tag="error">Bad fi</div><div class="text"> </div><div class="data" data-tag="test">good</div></div><div class="line"><div class="message">improper use of profanity; ten yard penalty; first down
+</div></div><div class="line"><div class="text"> </div><div class="data" data-tag="lines"> 20</div><div class="text"> </div><div class="data" data-tag="words"> 30</div><div class="text"> </div><div class="data" data-tag="characters"> 40</div><div class="text"> </div><div class="data" data-tag="filename">file</div></div><div class="line"><div class="data" data-tag="bytes">0</div><div class="padding"> </div><div class="note">bytes</div></div><div class="line"><div class="data" data-tag="bytes">1</div><div class="padding"> </div><div class="note">byte</div></div><div class="line"><div class="data" data-tag="bytes">2</div><div class="padding"> </div><div class="note">bytes</div></div><div class="line"><div class="data" data-tag="bytes">3</div><div class="padding"> </div><div class="note">bytes</div></div><div class="line"><div class="data" data-tag="bytes">4</div><div class="padding"> </div><div class="note">bytes</div></div><div class="line"><div class="data" data-tag="mbuf-current">10</div><div class="text">/</div><div class="data" data-tag="mbuf-cache">20</div><div class="text">/</div><div class="data" data-tag="mbuf-total">30</div><div class="text"> </div><div class="note">mbufs &lt;&amp;&gt; in use (current/cache/total)</div></div><div class="line"><div class="data" data-tag="distance" data-units="miles">50</div><div class="padding"> </div><div class="text"> from </div><div class="data" data-tag="location">Boston</div></div><div class="line"><div class="data" data-tag="memory" data-units="k">64</div><div class="text"> left out of </div><div class="data" data-tag="total" data-units="kb">640</div></div><div class="line"><div class="data" data-tag="memory" data-units="k">64</div><div class="text"> left out of </div><div class="data" data-tag="total" data-units="kilobytes">640</div></div><div class="line"><div class="title">beforeworkingafter:</div></div><div class="line"><div class="data" data-tag="some">string</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="ten">10</div><div class="data" data-tag="eleven">11</div></div><div class="line"><div class="data" data-tag="unknown">1010</div><div class="text"> </div><div class="note">packets here/there/everywhere</div></div><div class="line"><div class="data" data-tag="unknown">1010</div><div class="text"> </div><div class="note">packets here/there/everywhere</div></div><div class="line"><div class="text">(</div><div class="padding"> </div><div class="data" data-tag="min">15</div><div class="text">/</div><div class="data" data-tag="cur">20</div><div class="text">/</div><div class="data" data-tag="max">125</div><div class="text">)</div></div><div class="line"><div class="text">(</div><div class="padding"> </div><div class="data" data-tag="min">15</div><div class="text">/</div><div class="data" data-tag="cur">20</div><div class="text">/</div><div class="data" data-tag="max">125</div><div class="text">)</div></div><div class="line"><div class="text">(</div><div class="data" data-tag="min">15</div><div class="text">/</div><div class="data" data-tag="cur">20</div><div class="text">/</div><div class="data" data-tag="max">125</div><div class="padding"> </div><div class="text">)</div></div><div class="line"><div class="text">(</div><div class="data" data-tag="min">15</div><div class="text">/</div><div class="data" data-tag="cur">20</div><div class="text">/</div><div class="data" data-tag="max">125</div><div class="padding"> </div><div class="text">)</div></div><div class="line"><div class="text">Humanize: </div><div class="data" data-tag="val1" data-number="21">21</div><div class="text">, </div><div class="data" data-tag="val2" data-number="58368">57 K</div><div class="text">, </div><div class="data" data-tag="val3" data-number="100663296">96M</div><div class="text">, </div><div class="data" data-tag="val4" data-number="44470272">44M</div><div class="text">, </div><div class="data" data-tag="val5" data-number="1342172800">1.2G</div></div><div class="line"><div class="data" data-tag="flag">one</div><div class="text"> </div><div class="data" data-tag="flag">two</div><div class="text"> </div><div class="data" data-tag="flag">three</div></div><div class="line"><div class="data" data-tag="works">(null)</div></div><div class="line"><div class="text">1:</div><div class="data" data-tag="t1"> 1000</div><div class="text"> 2:</div><div class="data" data-tag="t2">test5000 </div><div class="text"> 3:</div><div class="data" data-tag="t3"> ten-longx</div><div class="text"> 4:</div><div class="data" data-tag="t4">xtest </div></div><div class="line"><div class="error">this is an error</div></div><div class="line"><div class="error">two more errors</div></div><div class="line"><div class="warning">this is an warning</div></div><div class="line"><div class="warning">two more warnings</div></div><div class="line"><div class="label">V1/V2 packets</div><div class="text">: </div><div class="data" data-tag="count">10</div></div><div class="line"><div class="data" data-tag="test">0004</div><div class="text"> </div><div class="label">tries</div></div><div class="line"><div class="message">improper use of profanity; ten yard penalty; first down
+</div></div><div class="line"><div class="error">Shut 'er down, Clancey! She's a-pumpin' mud! &lt;&gt;!,"!&lt;&gt;
+</div></div> \ No newline at end of file
diff --git a/0.4.6/tests/core/saved/test_02.HIPx.err b/0.4.6/tests/core/saved/test_02.HIPx.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_02.HIPx.err
diff --git a/0.4.6/tests/core/saved/test_02.HIPx.out b/0.4.6/tests/core/saved/test_02.HIPx.out
new file mode 100644
index 0000000..7af26b3
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_02.HIPx.out
@@ -0,0 +1,225 @@
+<div class="line">
+ <div class="text">We are </div>
+ <div class="text">{emit}</div>
+ <div class="text">{ting}</div>
+ <div class="text"> some </div>
+ <div class="data" data-tag="what" data-xpath="/top/data/what">braces</div>
+</div>
+<div class="line">
+ <div class="message">abcdef
+</div>
+</div>
+<div class="line">
+ <div class="message">abcdef: Bad file descriptor
+</div>
+</div>
+<div class="line">
+ <div class="message">improper use of profanity; ten yard penalty; first down
+</div>
+</div>
+<div class="line">
+ <div class="text">length </div>
+ <div class="data" data-tag="length" data-xpath="/top/data/length">abcdef</div>
+</div>
+<div class="line">
+ <div class="text">close </div>
+ <div class="data" data-tag="fd" data-xpath="/top/data/fd">-1</div>
+ <div class="text"> returned </div>
+ <div class="data" data-tag="error" data-xpath="/top/data/error">Bad file descriptor</div>
+ <div class="text"> </div>
+ <div class="data" data-tag="test" data-xpath="/top/data/test">good</div>
+</div>
+<div class="line">
+ <div class="text">close </div>
+ <div class="data" data-tag="fd" data-xpath="/top/data/fd">-1</div>
+ <div class="text"> returned </div>
+ <div class="data" data-tag="error" data-xpath="/top/data/error">Bad fi</div>
+ <div class="text"> </div>
+ <div class="data" data-tag="test" data-xpath="/top/data/test">good</div>
+</div>
+<div class="line">
+ <div class="message">improper use of profanity; ten yard penalty; first down
+</div>
+</div>
+<div class="line">
+ <div class="text"> </div>
+ <div class="data" data-tag="lines" data-xpath="/top/data/lines"> 20</div>
+ <div class="text"> </div>
+ <div class="data" data-tag="words" data-xpath="/top/data/words"> 30</div>
+ <div class="text"> </div>
+ <div class="data" data-tag="characters" data-xpath="/top/data/characters"> 40</div>
+ <div class="text"> </div>
+ <div class="data" data-tag="filename" data-xpath="/top/data/filename">file</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="bytes" data-xpath="/top/data/bytes">0</div>
+ <div class="padding"> </div>
+ <div class="note">bytes</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="bytes" data-xpath="/top/data/bytes">1</div>
+ <div class="padding"> </div>
+ <div class="note">byte</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="bytes" data-xpath="/top/data/bytes">2</div>
+ <div class="padding"> </div>
+ <div class="note">bytes</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="bytes" data-xpath="/top/data/bytes">3</div>
+ <div class="padding"> </div>
+ <div class="note">bytes</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="bytes" data-xpath="/top/data/bytes">4</div>
+ <div class="padding"> </div>
+ <div class="note">bytes</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="mbuf-current" data-xpath="/top/data/mbuf-current">10</div>
+ <div class="text">/</div>
+ <div class="data" data-tag="mbuf-cache" data-xpath="/top/data/mbuf-cache">20</div>
+ <div class="text">/</div>
+ <div class="data" data-tag="mbuf-total" data-xpath="/top/data/mbuf-total">30</div>
+ <div class="text"> </div>
+ <div class="note">mbufs &lt;&amp;&gt; in use (current/cache/total)</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="distance" data-units="miles" data-xpath="/top/data/distance">50</div>
+ <div class="padding"> </div>
+ <div class="text"> from </div>
+ <div class="data" data-tag="location" data-xpath="/top/data/location">Boston</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="memory" data-units="k" data-xpath="/top/data/memory">64</div>
+ <div class="text"> left out of </div>
+ <div class="data" data-tag="total" data-units="kb" data-xpath="/top/data/total">640</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="memory" data-units="k" data-xpath="/top/data/memory">64</div>
+ <div class="text"> left out of </div>
+ <div class="data" data-tag="total" data-units="kilobytes" data-xpath="/top/data/total">640</div>
+</div>
+<div class="line">
+ <div class="title">beforeworkingafter:</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="some" data-xpath="/top/data/some">string</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="ten" data-xpath="/top/data/ten">10</div>
+ <div class="data" data-tag="eleven" data-xpath="/top/data/eleven">11</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="unknown" data-xpath="/top/data/unknown">1010</div>
+ <div class="text"> </div>
+ <div class="note">packets here/there/everywhere</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="unknown" data-xpath="/top/data/unknown">1010</div>
+ <div class="text"> </div>
+ <div class="note">packets here/there/everywhere</div>
+</div>
+<div class="line">
+ <div class="text">(</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="min" data-xpath="/top/data/min">15</div>
+ <div class="text">/</div>
+ <div class="data" data-tag="cur" data-xpath="/top/data/cur">20</div>
+ <div class="text">/</div>
+ <div class="data" data-tag="max" data-xpath="/top/data/max">125</div>
+ <div class="text">)</div>
+</div>
+<div class="line">
+ <div class="text">(</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="min" data-xpath="/top/data/min">15</div>
+ <div class="text">/</div>
+ <div class="data" data-tag="cur" data-xpath="/top/data/cur">20</div>
+ <div class="text">/</div>
+ <div class="data" data-tag="max" data-xpath="/top/data/max">125</div>
+ <div class="text">)</div>
+</div>
+<div class="line">
+ <div class="text">(</div>
+ <div class="data" data-tag="min" data-xpath="/top/data/min">15</div>
+ <div class="text">/</div>
+ <div class="data" data-tag="cur" data-xpath="/top/data/cur">20</div>
+ <div class="text">/</div>
+ <div class="data" data-tag="max" data-xpath="/top/data/max">125</div>
+ <div class="padding"> </div>
+ <div class="text">)</div>
+</div>
+<div class="line">
+ <div class="text">(</div>
+ <div class="data" data-tag="min" data-xpath="/top/data/min">15</div>
+ <div class="text">/</div>
+ <div class="data" data-tag="cur" data-xpath="/top/data/cur">20</div>
+ <div class="text">/</div>
+ <div class="data" data-tag="max" data-xpath="/top/data/max">125</div>
+ <div class="padding"> </div>
+ <div class="text">)</div>
+</div>
+<div class="line">
+ <div class="text">Humanize: </div>
+ <div class="data" data-tag="val1" data-xpath="/top/data/val1" data-number="21">21</div>
+ <div class="text">, </div>
+ <div class="data" data-tag="val2" data-xpath="/top/data/val2" data-number="58368">57 K</div>
+ <div class="text">, </div>
+ <div class="data" data-tag="val3" data-xpath="/top/data/val3" data-number="100663296">96M</div>
+ <div class="text">, </div>
+ <div class="data" data-tag="val4" data-xpath="/top/data/val4" data-number="44470272">44M</div>
+ <div class="text">, </div>
+ <div class="data" data-tag="val5" data-xpath="/top/data/val5" data-number="1342172800">1.2G</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="flag" data-xpath="/top/data/flag">one</div>
+ <div class="text"> </div>
+ <div class="data" data-tag="flag" data-xpath="/top/data/flag">two</div>
+ <div class="text"> </div>
+ <div class="data" data-tag="flag" data-xpath="/top/data/flag">three</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="works" data-xpath="/top/data/works">(null)</div>
+</div>
+<div class="line">
+ <div class="text">1:</div>
+ <div class="data" data-tag="t1" data-xpath="/top/data/t1"> 1000</div>
+ <div class="text"> 2:</div>
+ <div class="data" data-tag="t2" data-xpath="/top/data/t2">test5000 </div>
+ <div class="text"> 3:</div>
+ <div class="data" data-tag="t3" data-xpath="/top/data/t3"> ten-longx</div>
+ <div class="text"> 4:</div>
+ <div class="data" data-tag="t4" data-xpath="/top/data/t4">xtest </div>
+</div>
+<div class="line">
+ <div class="error">this is an error</div>
+</div>
+<div class="line">
+ <div class="error">two more errors</div>
+</div>
+<div class="line">
+ <div class="warning">this is an warning</div>
+</div>
+<div class="line">
+ <div class="warning">two more warnings</div>
+</div>
+<div class="line">
+ <div class="label">V1/V2 packets</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="count" data-xpath="/top/data/count">10</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="test" data-xpath="/top/data/test">0004</div>
+ <div class="text"> </div>
+ <div class="label">tries</div>
+</div>
+<div class="line">
+ <div class="message">improper use of profanity; ten yard penalty; first down
+</div>
+</div>
+<div class="line">
+ <div class="error">Shut 'er down, Clancey! She's a-pumpin' mud! &lt;&gt;!,"!&lt;&gt;
+</div>
+</div>
diff --git a/0.4.6/tests/core/saved/test_02.HP.err b/0.4.6/tests/core/saved/test_02.HP.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_02.HP.err
diff --git a/0.4.6/tests/core/saved/test_02.HP.out b/0.4.6/tests/core/saved/test_02.HP.out
new file mode 100644
index 0000000..f7c9d9b
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_02.HP.out
@@ -0,0 +1,225 @@
+<div class="line">
+ <div class="text">We are </div>
+ <div class="text">{emit}</div>
+ <div class="text">{ting}</div>
+ <div class="text"> some </div>
+ <div class="data" data-tag="what">braces</div>
+</div>
+<div class="line">
+ <div class="message">abcdef
+</div>
+</div>
+<div class="line">
+ <div class="message">abcdef: Bad file descriptor
+</div>
+</div>
+<div class="line">
+ <div class="message">improper use of profanity; ten yard penalty; first down
+</div>
+</div>
+<div class="line">
+ <div class="text">length </div>
+ <div class="data" data-tag="length">abcdef</div>
+</div>
+<div class="line">
+ <div class="text">close </div>
+ <div class="data" data-tag="fd">-1</div>
+ <div class="text"> returned </div>
+ <div class="data" data-tag="error">Bad file descriptor</div>
+ <div class="text"> </div>
+ <div class="data" data-tag="test">good</div>
+</div>
+<div class="line">
+ <div class="text">close </div>
+ <div class="data" data-tag="fd">-1</div>
+ <div class="text"> returned </div>
+ <div class="data" data-tag="error">Bad fi</div>
+ <div class="text"> </div>
+ <div class="data" data-tag="test">good</div>
+</div>
+<div class="line">
+ <div class="message">improper use of profanity; ten yard penalty; first down
+</div>
+</div>
+<div class="line">
+ <div class="text"> </div>
+ <div class="data" data-tag="lines"> 20</div>
+ <div class="text"> </div>
+ <div class="data" data-tag="words"> 30</div>
+ <div class="text"> </div>
+ <div class="data" data-tag="characters"> 40</div>
+ <div class="text"> </div>
+ <div class="data" data-tag="filename">file</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="bytes">0</div>
+ <div class="padding"> </div>
+ <div class="note">bytes</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="bytes">1</div>
+ <div class="padding"> </div>
+ <div class="note">byte</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="bytes">2</div>
+ <div class="padding"> </div>
+ <div class="note">bytes</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="bytes">3</div>
+ <div class="padding"> </div>
+ <div class="note">bytes</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="bytes">4</div>
+ <div class="padding"> </div>
+ <div class="note">bytes</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="mbuf-current">10</div>
+ <div class="text">/</div>
+ <div class="data" data-tag="mbuf-cache">20</div>
+ <div class="text">/</div>
+ <div class="data" data-tag="mbuf-total">30</div>
+ <div class="text"> </div>
+ <div class="note">mbufs &lt;&amp;&gt; in use (current/cache/total)</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="distance" data-units="miles">50</div>
+ <div class="padding"> </div>
+ <div class="text"> from </div>
+ <div class="data" data-tag="location">Boston</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="memory" data-units="k">64</div>
+ <div class="text"> left out of </div>
+ <div class="data" data-tag="total" data-units="kb">640</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="memory" data-units="k">64</div>
+ <div class="text"> left out of </div>
+ <div class="data" data-tag="total" data-units="kilobytes">640</div>
+</div>
+<div class="line">
+ <div class="title">beforeworkingafter:</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="some">string</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="ten">10</div>
+ <div class="data" data-tag="eleven">11</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="unknown">1010</div>
+ <div class="text"> </div>
+ <div class="note">packets here/there/everywhere</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="unknown">1010</div>
+ <div class="text"> </div>
+ <div class="note">packets here/there/everywhere</div>
+</div>
+<div class="line">
+ <div class="text">(</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="min">15</div>
+ <div class="text">/</div>
+ <div class="data" data-tag="cur">20</div>
+ <div class="text">/</div>
+ <div class="data" data-tag="max">125</div>
+ <div class="text">)</div>
+</div>
+<div class="line">
+ <div class="text">(</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="min">15</div>
+ <div class="text">/</div>
+ <div class="data" data-tag="cur">20</div>
+ <div class="text">/</div>
+ <div class="data" data-tag="max">125</div>
+ <div class="text">)</div>
+</div>
+<div class="line">
+ <div class="text">(</div>
+ <div class="data" data-tag="min">15</div>
+ <div class="text">/</div>
+ <div class="data" data-tag="cur">20</div>
+ <div class="text">/</div>
+ <div class="data" data-tag="max">125</div>
+ <div class="padding"> </div>
+ <div class="text">)</div>
+</div>
+<div class="line">
+ <div class="text">(</div>
+ <div class="data" data-tag="min">15</div>
+ <div class="text">/</div>
+ <div class="data" data-tag="cur">20</div>
+ <div class="text">/</div>
+ <div class="data" data-tag="max">125</div>
+ <div class="padding"> </div>
+ <div class="text">)</div>
+</div>
+<div class="line">
+ <div class="text">Humanize: </div>
+ <div class="data" data-tag="val1" data-number="21">21</div>
+ <div class="text">, </div>
+ <div class="data" data-tag="val2" data-number="58368">57 K</div>
+ <div class="text">, </div>
+ <div class="data" data-tag="val3" data-number="100663296">96M</div>
+ <div class="text">, </div>
+ <div class="data" data-tag="val4" data-number="44470272">44M</div>
+ <div class="text">, </div>
+ <div class="data" data-tag="val5" data-number="1342172800">1.2G</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="flag">one</div>
+ <div class="text"> </div>
+ <div class="data" data-tag="flag">two</div>
+ <div class="text"> </div>
+ <div class="data" data-tag="flag">three</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="works">(null)</div>
+</div>
+<div class="line">
+ <div class="text">1:</div>
+ <div class="data" data-tag="t1"> 1000</div>
+ <div class="text"> 2:</div>
+ <div class="data" data-tag="t2">test5000 </div>
+ <div class="text"> 3:</div>
+ <div class="data" data-tag="t3"> ten-longx</div>
+ <div class="text"> 4:</div>
+ <div class="data" data-tag="t4">xtest </div>
+</div>
+<div class="line">
+ <div class="error">this is an error</div>
+</div>
+<div class="line">
+ <div class="error">two more errors</div>
+</div>
+<div class="line">
+ <div class="warning">this is an warning</div>
+</div>
+<div class="line">
+ <div class="warning">two more warnings</div>
+</div>
+<div class="line">
+ <div class="label">V1/V2 packets</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="count">10</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="test">0004</div>
+ <div class="text"> </div>
+ <div class="label">tries</div>
+</div>
+<div class="line">
+ <div class="message">improper use of profanity; ten yard penalty; first down
+</div>
+</div>
+<div class="line">
+ <div class="error">Shut 'er down, Clancey! She's a-pumpin' mud! &lt;&gt;!,"!&lt;&gt;
+</div>
+</div>
diff --git a/0.4.6/tests/core/saved/test_02.J.err b/0.4.6/tests/core/saved/test_02.J.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_02.J.err
diff --git a/0.4.6/tests/core/saved/test_02.J.out b/0.4.6/tests/core/saved/test_02.J.out
new file mode 100644
index 0000000..5578389
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_02.J.out
@@ -0,0 +1,2 @@
+{"top": {"data": {"what":"braces","length":"abcdef","fd":-1,"error":"Bad file descriptor","test":"good","fd":-1,"error":"Bad fi","test":"good","lines":20,"words":30,"characters":40, "bytes": [0,1,2,3,4],"mbuf-current":10,"mbuf-cache":20,"mbuf-total":30,"distance":50,"location":"Boston","memory":64,"total":640,"memory":64,"total":640,"ten":10,"eleven":11,"unknown":1010,"unknown":1010,"min":15,"cur":20,"max":30,"min":15,"cur":20,"max":125,"min":15,"cur":20,"max":125,"min":15,"cur":20,"max":125,"val1":21,"val2":58368,"val3":100663296,"val4":44470272,"val5":1342172800, "flag": ["one","two","three"],"works":null,"empty-tag":true,"t1":"1000","t2":"test5000","t3":"ten-longx","t4":"xtest", "__error": {"message":"this is an error"}, "__error": {"message":"two more errors"}, "__warning": {"message":this is an warning}, "__warning": {"message":"two more warnings"},"count":10,"test":4, "error": {"message":"Shut 'er down, Clancey! She's a-pumpin' mud! <>!,\"!<>\n"}}}
+}
diff --git a/0.4.6/tests/core/saved/test_02.JP.err b/0.4.6/tests/core/saved/test_02.JP.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_02.JP.err
diff --git a/0.4.6/tests/core/saved/test_02.JP.out b/0.4.6/tests/core/saved/test_02.JP.out
new file mode 100644
index 0000000..fd910aa
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_02.JP.out
@@ -0,0 +1,82 @@
+{
+ "top": {
+ "data": {
+ "what": "braces",
+ "length": "abcdef",
+ "fd": -1,
+ "error": "Bad file descriptor",
+ "test": "good",
+ "fd": -1,
+ "error": "Bad fi",
+ "test": "good",
+ "lines": 20,
+ "words": 30,
+ "characters": 40,
+ "bytes": [
+ 0,
+ 1,
+ 2,
+ 3,
+ 4
+ ],
+ "mbuf-current": 10,
+ "mbuf-cache": 20,
+ "mbuf-total": 30,
+ "distance": 50,
+ "location": "Boston",
+ "memory": 64,
+ "total": 640,
+ "memory": 64,
+ "total": 640,
+ "ten": 10,
+ "eleven": 11,
+ "unknown": 1010,
+ "unknown": 1010,
+ "min": 15,
+ "cur": 20,
+ "max": 30,
+ "min": 15,
+ "cur": 20,
+ "max": 125,
+ "min": 15,
+ "cur": 20,
+ "max": 125,
+ "min": 15,
+ "cur": 20,
+ "max": 125,
+ "val1": 21,
+ "val2": 58368,
+ "val3": 100663296,
+ "val4": 44470272,
+ "val5": 1342172800,
+ "flag": [
+ "one",
+ "two",
+ "three"
+ ],
+ "works": null,
+ "empty-tag": true,
+ "t1": "1000",
+ "t2": "test5000",
+ "t3": "ten-longx",
+ "t4": "xtest",
+ "__error": {
+ "message": "this is an error"
+ },
+ "__error": {
+ "message": "two more errors"
+ },
+ "__warning": {
+ "message": this is an warning
+ },
+ "__warning": {
+ "message": "two more warnings"
+ },
+ "count": 10,
+ "test": 4,
+ "error": {
+ "message": "Shut 'er down, Clancey! She's a-pumpin' mud! <>!,\"!<>\n"
+ }
+ }
+ }
+}
diff --git a/0.4.6/tests/core/saved/test_02.T.err b/0.4.6/tests/core/saved/test_02.T.err
new file mode 100644
index 0000000..80fabe3
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_02.T.err
@@ -0,0 +1 @@
+Shut 'er down, Clancey! She's a-pumpin' mud! <>!,"!<>
diff --git a/0.4.6/tests/core/saved/test_02.T.out b/0.4.6/tests/core/saved/test_02.T.out
new file mode 100644
index 0000000..d65e7c5
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_02.T.out
@@ -0,0 +1,37 @@
+We are {emit}{ting} some braces
+abcdef
+abcdef: Bad file descriptor
+improper use of profanity; ten yard penalty; first down
+length abcdef
+close -1 returned Bad file descriptor good
+close -1 returned Bad fi good
+improper use of profanity; ten yard penalty; first down
+ 20 30 40 file
+0 bytes
+1 byte
+2 bytes
+3 bytes
+4 bytes
+10/20/30 mbufs <&> in use (current/cache/total)
+50 miles from Boston
+64k left out of 640kb
+64k left out of 640kilobytes
+beforeworkingafter:
+string: 1011
+1010 packets here/there/everywhere
+1010 packets here/there/everywhere
+( 15/20/125)
+( 15/20/125)
+(15/20/125 )
+(15/20/125 )
+Humanize: 21, 57 K, 96M, 44M, 1.2G
+one two three
+(null)
+1: 1000 2:test5000 3: ten-longx 4:xtest
+this is an error
+two more errors
+this is an warning
+two more warnings
+V1/V2 packets: 10
+0004 tries
+improper use of profanity; ten yard penalty; first down
diff --git a/0.4.6/tests/core/saved/test_02.X.err b/0.4.6/tests/core/saved/test_02.X.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_02.X.err
diff --git a/0.4.6/tests/core/saved/test_02.X.out b/0.4.6/tests/core/saved/test_02.X.out
new file mode 100644
index 0000000..30421ea
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_02.X.out
@@ -0,0 +1,7 @@
+<top><data><what>braces</what><message>abcdef
+</message><message>abcdef: Bad file descriptor
+</message><message>improper use of profanity; ten yard penalty; first down
+</message><length>abcdef</length><fd>-1</fd><error>Bad file descriptor</error><test>good</test><fd>-1</fd><error>Bad fi</error><test>good</test><message>improper use of profanity; ten yard penalty; first down
+</message><lines>20</lines><words>30</words><characters>40</characters><bytes>0</bytes><bytes>1</bytes><bytes>2</bytes><bytes>3</bytes><bytes>4</bytes><mbuf-current>10</mbuf-current><mbuf-cache>20</mbuf-cache><mbuf-total>30</mbuf-total><distance units="miles">50</distance><location>Boston</location><memory units="k">64</memory><total units="kb">640</total><memory units="k">64</memory><total units="kilobytes">640</total><ten>10</ten><eleven>11</eleven><unknown>1010</unknown><unknown>1010</unknown><min>15</min><cur>20</cur><max>30</max><min>15</min><cur>20</cur><max>125</max><min>15</min><cur>20</cur><max>125</max><min>15</min><cur>20</cur><max>125</max><val1>21</val1><val2>58368</val2><val3>100663296</val3><val4>44470272</val4><val5>1342172800</val5><flag>one</flag><flag>two</flag><flag>three</flag><works>null</works><empty-tag></empty-tag><t1>1000</t1><t2>test5000</t2><t3>ten-longx</t3><t4>xtest</t4><__error><message>this is an error</message></__error><__error><message>two more errors</message></__error><__warning><message>this is an warning</message></__warning><__warning><message>two more warnings</message></__warning><count>10</count><test>4</test><message>improper use of profanity; ten yard penalty; first down
+</message><error><message>Shut 'er down, Clancey! She's a-pumpin' mud! &lt;&gt;!,"!&lt;&gt;
+</message></error></data></top> \ No newline at end of file
diff --git a/0.4.6/tests/core/saved/test_02.XP.err b/0.4.6/tests/core/saved/test_02.XP.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_02.XP.err
diff --git a/0.4.6/tests/core/saved/test_02.XP.out b/0.4.6/tests/core/saved/test_02.XP.out
new file mode 100644
index 0000000..e70e6ef
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_02.XP.out
@@ -0,0 +1,87 @@
+<top>
+ <data>
+ <what>braces</what>
+ <message>abcdef
+</message>
+ <message>abcdef: Bad file descriptor
+</message>
+ <message>improper use of profanity; ten yard penalty; first down
+</message>
+ <length>abcdef</length>
+ <fd>-1</fd>
+ <error>Bad file descriptor</error>
+ <test>good</test>
+ <fd>-1</fd>
+ <error>Bad fi</error>
+ <test>good</test>
+ <message>improper use of profanity; ten yard penalty; first down
+</message>
+ <lines>20</lines>
+ <words>30</words>
+ <characters>40</characters>
+ <bytes>0</bytes>
+ <bytes>1</bytes>
+ <bytes>2</bytes>
+ <bytes>3</bytes>
+ <bytes>4</bytes>
+ <mbuf-current>10</mbuf-current>
+ <mbuf-cache>20</mbuf-cache>
+ <mbuf-total>30</mbuf-total>
+ <distance units="miles">50</distance>
+ <location>Boston</location>
+ <memory units="k">64</memory>
+ <total units="kb">640</total>
+ <memory units="k">64</memory>
+ <total units="kilobytes">640</total>
+ <ten>10</ten>
+ <eleven>11</eleven>
+ <unknown>1010</unknown>
+ <unknown>1010</unknown>
+ <min>15</min>
+ <cur>20</cur>
+ <max>30</max>
+ <min>15</min>
+ <cur>20</cur>
+ <max>125</max>
+ <min>15</min>
+ <cur>20</cur>
+ <max>125</max>
+ <min>15</min>
+ <cur>20</cur>
+ <max>125</max>
+ <val1>21</val1>
+ <val2>58368</val2>
+ <val3>100663296</val3>
+ <val4>44470272</val4>
+ <val5>1342172800</val5>
+ <flag>one</flag>
+ <flag>two</flag>
+ <flag>three</flag>
+ <works>null</works>
+ <empty-tag></empty-tag>
+ <t1>1000</t1>
+ <t2>test5000</t2>
+ <t3>ten-longx</t3>
+ <t4>xtest</t4>
+ <__error>
+ <message>this is an error</message>
+ </__error>
+ <__error>
+ <message>two more errors</message>
+ </__error>
+ <__warning>
+ <message>this is an warning</message>
+ </__warning>
+ <__warning>
+ <message>two more warnings</message>
+ </__warning>
+ <count>10</count>
+ <test>4</test>
+ <message>improper use of profanity; ten yard penalty; first down
+</message>
+ <error>
+ <message>Shut 'er down, Clancey! She's a-pumpin' mud! &lt;&gt;!,"!&lt;&gt;
+</message>
+ </error>
+ </data>
+</top>
diff --git a/0.4.6/tests/core/saved/test_02.err b/0.4.6/tests/core/saved/test_02.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_02.err
diff --git a/0.4.6/tests/core/saved/test_02.out b/0.4.6/tests/core/saved/test_02.out
new file mode 100644
index 0000000..c2ad7a0
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_02.out
@@ -0,0 +1,38 @@
+Item Total Sold In Stock On Order SKU
+gum 1412 54 10 GRO-000-415
+rope 85 4 2 HRD-000-212
+ladder 0 2 1 HRD-000-517
+bolt 4123 144 42 HRD-000-632
+water 17 14 2 GRO-000-2331
+
+
+Item 'gum':
+ Total sold: 1412.0
+ In stock: 54
+ On order: 10
+ SKU: GRO-000-415
+Item 'rope':
+ Total sold: 85.0
+ In stock: 4
+ On order: 2
+ SKU: HRD-000-212
+Item 'ladder':
+ Total sold: 0
+ In stock: 2
+ On order: 1
+ SKU: HRD-000-517
+Item 'bolt':
+ Total sold: 4123.0
+ In stock: 144
+ On order: 42
+ SKU: HRD-000-632
+Item 'water':
+ Total sold: 17.0
+ In stock: 14
+ On order: 2
+ SKU: GRO-000-2331
+Item 'fish':
+ Total sold: 1321.0
+ In stock: 45
+ On order: 1
+ SKU: GRO-000-533
diff --git a/0.4.6/tests/core/saved/test_03.E.err b/0.4.6/tests/core/saved/test_03.E.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_03.E.err
diff --git a/0.4.6/tests/core/saved/test_03.E.out b/0.4.6/tests/core/saved/test_03.E.out
new file mode 100644
index 0000000..3965783
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_03.E.out
@@ -0,0 +1,22 @@
+op create: [] []
+op open_container: [employees] []
+op open_list: [employee] []
+op open_instance: [employee] []
+op string: [first-name] [Terry]
+op string: [last-name] [Jones]
+op content: [department] [660]
+op close_instance: [employee] []
+op open_instance: [employee] []
+op string: [first-name] [Leslie]
+op string: [last-name] [Patterson]
+op content: [department] [341]
+op close_instance: [employee] []
+op open_instance: [employee] []
+op string: [first-name] [Ashley]
+op string: [last-name] [Smith]
+op content: [department] [1440]
+op close_instance: [employee] []
+op close_list: [employee] []
+op close_container: [employees] []
+op finish: [] []
+op flush: [] []
diff --git a/0.4.6/tests/core/saved/test_03.H.err b/0.4.6/tests/core/saved/test_03.H.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_03.H.err
diff --git a/0.4.6/tests/core/saved/test_03.H.out b/0.4.6/tests/core/saved/test_03.H.out
new file mode 100644
index 0000000..6b9ccc4
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_03.H.out
@@ -0,0 +1 @@
+<div class="line"><div class="data" data-tag="first-name">Terry</div><div class="text"> </div><div class="data" data-tag="last-name">Jones</div><div class="text"> works in dept #</div><div class="data" data-tag="department">660</div></div><div class="line"><div class="data" data-tag="first-name">Leslie</div><div class="text"> </div><div class="data" data-tag="last-name">Patterson</div><div class="text"> works in dept #</div><div class="data" data-tag="department">341</div></div><div class="line"><div class="data" data-tag="first-name">Ashley</div><div class="text"> </div><div class="data" data-tag="last-name">Smith</div><div class="text"> works in dept #</div><div class="data" data-tag="department">1440</div></div> \ No newline at end of file
diff --git a/0.4.6/tests/core/saved/test_03.HIPx.err b/0.4.6/tests/core/saved/test_03.HIPx.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_03.HIPx.err
diff --git a/0.4.6/tests/core/saved/test_03.HIPx.out b/0.4.6/tests/core/saved/test_03.HIPx.out
new file mode 100644
index 0000000..bfae221
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_03.HIPx.out
@@ -0,0 +1,21 @@
+<div class="line">
+ <div class="data" data-tag="first-name" data-xpath="/employees/employee/first-name" data-type="string" data-help="First name of employee">Terry</div>
+ <div class="text"> </div>
+ <div class="data" data-tag="last-name" data-xpath="/employees/employee/last-name" data-type="string" data-help="Last name of employee">Jones</div>
+ <div class="text"> works in dept #</div>
+ <div class="data" data-tag="department" data-xpath="/employees/employee/department">660</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="first-name" data-xpath="/employees/employee/first-name" data-type="string" data-help="First name of employee">Leslie</div>
+ <div class="text"> </div>
+ <div class="data" data-tag="last-name" data-xpath="/employees/employee/last-name" data-type="string" data-help="Last name of employee">Patterson</div>
+ <div class="text"> works in dept #</div>
+ <div class="data" data-tag="department" data-xpath="/employees/employee/department">341</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="first-name" data-xpath="/employees/employee/first-name" data-type="string" data-help="First name of employee">Ashley</div>
+ <div class="text"> </div>
+ <div class="data" data-tag="last-name" data-xpath="/employees/employee/last-name" data-type="string" data-help="Last name of employee">Smith</div>
+ <div class="text"> works in dept #</div>
+ <div class="data" data-tag="department" data-xpath="/employees/employee/department">1440</div>
+</div>
diff --git a/0.4.6/tests/core/saved/test_03.HP.err b/0.4.6/tests/core/saved/test_03.HP.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_03.HP.err
diff --git a/0.4.6/tests/core/saved/test_03.HP.out b/0.4.6/tests/core/saved/test_03.HP.out
new file mode 100644
index 0000000..f8b072a
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_03.HP.out
@@ -0,0 +1,21 @@
+<div class="line">
+ <div class="data" data-tag="first-name">Terry</div>
+ <div class="text"> </div>
+ <div class="data" data-tag="last-name">Jones</div>
+ <div class="text"> works in dept #</div>
+ <div class="data" data-tag="department">660</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="first-name">Leslie</div>
+ <div class="text"> </div>
+ <div class="data" data-tag="last-name">Patterson</div>
+ <div class="text"> works in dept #</div>
+ <div class="data" data-tag="department">341</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="first-name">Ashley</div>
+ <div class="text"> </div>
+ <div class="data" data-tag="last-name">Smith</div>
+ <div class="text"> works in dept #</div>
+ <div class="data" data-tag="department">1440</div>
+</div>
diff --git a/0.4.6/tests/core/saved/test_03.J.err b/0.4.6/tests/core/saved/test_03.J.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_03.J.err
diff --git a/0.4.6/tests/core/saved/test_03.J.out b/0.4.6/tests/core/saved/test_03.J.out
new file mode 100644
index 0000000..4ba1fb1
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_03.J.out
@@ -0,0 +1,2 @@
+{"employees": {"employee": [{"first-name":"Terry","last-name":"Jones","department":660}, {"first-name":"Leslie","last-name":"Patterson","department":341}, {"first-name":"Ashley","last-name":"Smith","department":1440}]}
+}
diff --git a/0.4.6/tests/core/saved/test_03.JP.err b/0.4.6/tests/core/saved/test_03.JP.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_03.JP.err
diff --git a/0.4.6/tests/core/saved/test_03.JP.out b/0.4.6/tests/core/saved/test_03.JP.out
new file mode 100644
index 0000000..ff2d5b0
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_03.JP.out
@@ -0,0 +1,21 @@
+{
+ "employees": {
+ "employee": [
+ {
+ "first-name": "Terry",
+ "last-name": "Jones",
+ "department": 660
+ },
+ {
+ "first-name": "Leslie",
+ "last-name": "Patterson",
+ "department": 341
+ },
+ {
+ "first-name": "Ashley",
+ "last-name": "Smith",
+ "department": 1440
+ }
+ ]
+ }
+}
diff --git a/0.4.6/tests/core/saved/test_03.T.err b/0.4.6/tests/core/saved/test_03.T.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_03.T.err
diff --git a/0.4.6/tests/core/saved/test_03.T.out b/0.4.6/tests/core/saved/test_03.T.out
new file mode 100644
index 0000000..da60fb7
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_03.T.out
@@ -0,0 +1,3 @@
+Terry Jones works in dept #660
+Leslie Patterson works in dept #341
+Ashley Smith works in dept #1440
diff --git a/0.4.6/tests/core/saved/test_03.X.err b/0.4.6/tests/core/saved/test_03.X.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_03.X.err
diff --git a/0.4.6/tests/core/saved/test_03.X.out b/0.4.6/tests/core/saved/test_03.X.out
new file mode 100644
index 0000000..a626fb6
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_03.X.out
@@ -0,0 +1 @@
+<employees><employee><first-name>Terry</first-name><last-name>Jones</last-name><department>660</department></employee><employee><first-name>Leslie</first-name><last-name>Patterson</last-name><department>341</department></employee><employee><first-name>Ashley</first-name><last-name>Smith</last-name><department>1440</department></employee></employees> \ No newline at end of file
diff --git a/0.4.6/tests/core/saved/test_03.XP.err b/0.4.6/tests/core/saved/test_03.XP.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_03.XP.err
diff --git a/0.4.6/tests/core/saved/test_03.XP.out b/0.4.6/tests/core/saved/test_03.XP.out
new file mode 100644
index 0000000..b6e7641
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_03.XP.out
@@ -0,0 +1,17 @@
+<employees>
+ <employee>
+ <first-name>Terry</first-name>
+ <last-name>Jones</last-name>
+ <department>660</department>
+ </employee>
+ <employee>
+ <first-name>Leslie</first-name>
+ <last-name>Patterson</last-name>
+ <department>341</department>
+ </employee>
+ <employee>
+ <first-name>Ashley</first-name>
+ <last-name>Smith</last-name>
+ <department>1440</department>
+ </employee>
+</employees>
diff --git a/0.4.6/tests/core/saved/test_03.err b/0.4.6/tests/core/saved/test_03.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_03.err
diff --git a/0.4.6/tests/core/saved/test_03.out b/0.4.6/tests/core/saved/test_03.out
new file mode 100644
index 0000000..da60fb7
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_03.out
@@ -0,0 +1,3 @@
+Terry Jones works in dept #660
+Leslie Patterson works in dept #341
+Ashley Smith works in dept #1440
diff --git a/0.4.6/tests/core/saved/test_04.E.err b/0.4.6/tests/core/saved/test_04.E.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_04.E.err
diff --git a/0.4.6/tests/core/saved/test_04.E.out b/0.4.6/tests/core/saved/test_04.E.out
new file mode 100644
index 0000000..3965783
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_04.E.out
@@ -0,0 +1,22 @@
+op create: [] []
+op open_container: [employees] []
+op open_list: [employee] []
+op open_instance: [employee] []
+op string: [first-name] [Terry]
+op string: [last-name] [Jones]
+op content: [department] [660]
+op close_instance: [employee] []
+op open_instance: [employee] []
+op string: [first-name] [Leslie]
+op string: [last-name] [Patterson]
+op content: [department] [341]
+op close_instance: [employee] []
+op open_instance: [employee] []
+op string: [first-name] [Ashley]
+op string: [last-name] [Smith]
+op content: [department] [1440]
+op close_instance: [employee] []
+op close_list: [employee] []
+op close_container: [employees] []
+op finish: [] []
+op flush: [] []
diff --git a/0.4.6/tests/core/saved/test_04.H.err b/0.4.6/tests/core/saved/test_04.H.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_04.H.err
diff --git a/0.4.6/tests/core/saved/test_04.H.out b/0.4.6/tests/core/saved/test_04.H.out
new file mode 100644
index 0000000..1758236
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_04.H.out
@@ -0,0 +1 @@
+<div class="line"><div class="title">Last Name </div><div class="title">First Name </div><div class="title">Department</div></div><div class="line"><div class="data" data-tag="first-name">Terry </div><div class="data" data-tag="last-name">Jones </div><div class="data" data-tag="department"> 660</div></div><div class="line"><div class="data" data-tag="first-name">Leslie </div><div class="data" data-tag="last-name">Patterson </div><div class="data" data-tag="department"> 341</div></div><div class="line"><div class="data" data-tag="first-name">Ashley </div><div class="data" data-tag="last-name">Smith </div><div class="data" data-tag="department"> 1440</div></div> \ No newline at end of file
diff --git a/0.4.6/tests/core/saved/test_04.HIPx.err b/0.4.6/tests/core/saved/test_04.HIPx.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_04.HIPx.err
diff --git a/0.4.6/tests/core/saved/test_04.HIPx.out b/0.4.6/tests/core/saved/test_04.HIPx.out
new file mode 100644
index 0000000..473113b
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_04.HIPx.out
@@ -0,0 +1,20 @@
+<div class="line">
+ <div class="title">Last Name </div>
+ <div class="title">First Name </div>
+ <div class="title">Department</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="first-name" data-xpath="/employees/employee/first-name" data-type="string" data-help="First name of employee">Terry </div>
+ <div class="data" data-tag="last-name" data-xpath="/employees/employee/last-name" data-type="string" data-help="Last name of employee">Jones </div>
+ <div class="data" data-tag="department" data-xpath="/employees/employee/department"> 660</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="first-name" data-xpath="/employees/employee/first-name" data-type="string" data-help="First name of employee">Leslie </div>
+ <div class="data" data-tag="last-name" data-xpath="/employees/employee/last-name" data-type="string" data-help="Last name of employee">Patterson </div>
+ <div class="data" data-tag="department" data-xpath="/employees/employee/department"> 341</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="first-name" data-xpath="/employees/employee/first-name" data-type="string" data-help="First name of employee">Ashley </div>
+ <div class="data" data-tag="last-name" data-xpath="/employees/employee/last-name" data-type="string" data-help="Last name of employee">Smith </div>
+ <div class="data" data-tag="department" data-xpath="/employees/employee/department"> 1440</div>
+</div>
diff --git a/0.4.6/tests/core/saved/test_04.HP.err b/0.4.6/tests/core/saved/test_04.HP.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_04.HP.err
diff --git a/0.4.6/tests/core/saved/test_04.HP.out b/0.4.6/tests/core/saved/test_04.HP.out
new file mode 100644
index 0000000..d56f8f4
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_04.HP.out
@@ -0,0 +1,20 @@
+<div class="line">
+ <div class="title">Last Name </div>
+ <div class="title">First Name </div>
+ <div class="title">Department</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="first-name">Terry </div>
+ <div class="data" data-tag="last-name">Jones </div>
+ <div class="data" data-tag="department"> 660</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="first-name">Leslie </div>
+ <div class="data" data-tag="last-name">Patterson </div>
+ <div class="data" data-tag="department"> 341</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="first-name">Ashley </div>
+ <div class="data" data-tag="last-name">Smith </div>
+ <div class="data" data-tag="department"> 1440</div>
+</div>
diff --git a/0.4.6/tests/core/saved/test_04.J.err b/0.4.6/tests/core/saved/test_04.J.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_04.J.err
diff --git a/0.4.6/tests/core/saved/test_04.J.out b/0.4.6/tests/core/saved/test_04.J.out
new file mode 100644
index 0000000..4ba1fb1
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_04.J.out
@@ -0,0 +1,2 @@
+{"employees": {"employee": [{"first-name":"Terry","last-name":"Jones","department":660}, {"first-name":"Leslie","last-name":"Patterson","department":341}, {"first-name":"Ashley","last-name":"Smith","department":1440}]}
+}
diff --git a/0.4.6/tests/core/saved/test_04.JP.err b/0.4.6/tests/core/saved/test_04.JP.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_04.JP.err
diff --git a/0.4.6/tests/core/saved/test_04.JP.out b/0.4.6/tests/core/saved/test_04.JP.out
new file mode 100644
index 0000000..ff2d5b0
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_04.JP.out
@@ -0,0 +1,21 @@
+{
+ "employees": {
+ "employee": [
+ {
+ "first-name": "Terry",
+ "last-name": "Jones",
+ "department": 660
+ },
+ {
+ "first-name": "Leslie",
+ "last-name": "Patterson",
+ "department": 341
+ },
+ {
+ "first-name": "Ashley",
+ "last-name": "Smith",
+ "department": 1440
+ }
+ ]
+ }
+}
diff --git a/0.4.6/tests/core/saved/test_04.T.err b/0.4.6/tests/core/saved/test_04.T.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_04.T.err
diff --git a/0.4.6/tests/core/saved/test_04.T.out b/0.4.6/tests/core/saved/test_04.T.out
new file mode 100644
index 0000000..aca80c4
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_04.T.out
@@ -0,0 +1,4 @@
+Last Name First Name Department
+Terry Jones 660
+Leslie Patterson 341
+Ashley Smith 1440
diff --git a/0.4.6/tests/core/saved/test_04.X.err b/0.4.6/tests/core/saved/test_04.X.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_04.X.err
diff --git a/0.4.6/tests/core/saved/test_04.X.out b/0.4.6/tests/core/saved/test_04.X.out
new file mode 100644
index 0000000..a626fb6
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_04.X.out
@@ -0,0 +1 @@
+<employees><employee><first-name>Terry</first-name><last-name>Jones</last-name><department>660</department></employee><employee><first-name>Leslie</first-name><last-name>Patterson</last-name><department>341</department></employee><employee><first-name>Ashley</first-name><last-name>Smith</last-name><department>1440</department></employee></employees> \ No newline at end of file
diff --git a/0.4.6/tests/core/saved/test_04.XP.err b/0.4.6/tests/core/saved/test_04.XP.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_04.XP.err
diff --git a/0.4.6/tests/core/saved/test_04.XP.out b/0.4.6/tests/core/saved/test_04.XP.out
new file mode 100644
index 0000000..b6e7641
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_04.XP.out
@@ -0,0 +1,17 @@
+<employees>
+ <employee>
+ <first-name>Terry</first-name>
+ <last-name>Jones</last-name>
+ <department>660</department>
+ </employee>
+ <employee>
+ <first-name>Leslie</first-name>
+ <last-name>Patterson</last-name>
+ <department>341</department>
+ </employee>
+ <employee>
+ <first-name>Ashley</first-name>
+ <last-name>Smith</last-name>
+ <department>1440</department>
+ </employee>
+</employees>
diff --git a/0.4.6/tests/core/saved/test_05.E.err b/0.4.6/tests/core/saved/test_05.E.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_05.E.err
diff --git a/0.4.6/tests/core/saved/test_05.E.out b/0.4.6/tests/core/saved/test_05.E.out
new file mode 100644
index 0000000..0ca15f4
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_05.E.out
@@ -0,0 +1,96 @@
+op create: [] []
+op open_container: [indian-languages] []
+op string: [gurmukhi] [ਲਹੌਰ ਪਾਕਿਸਤਾਨੀ ਪੰਜਾਬ ਦੀ ਰਾਜਧਾਨੀ ਹੈ । ਲੋਕ ਗਿਣਤੀ ਦੇ ਨਾਲ ਕਰਾਚੀ ਤੋਂ ਬਾਅਦ ਲਹੌਰ ਦੂਜਾ ਸਭ ਤੋਂ ਵੱਡਾ ਸ਼ਹਿਰ ਹੈ । ਲਹੌਰ ਪਾਕਿਸਤਾਨ ਦਾ ਸਿਆਸੀ, ਰਹਤਲੀ ਤੇ ਪੜ੍ਹਾਈ ਦਾ ਗੜ੍ਹ ਹੈ ਅਤੇ ਇਸ ਲਈ ਇਹਨੂੰ ਪਾਕਿਸਤਾਨ ਦਾ ਦਿਲ ਵੀ ਕਿਹਾ ਜਾਂਦਾ ਹੈ । ਲਹੌਰ ਦਰਿਆ-ਏ-ਰਾਵੀ ਦੇ ਕੰਢੇ ਤੇ ਵਸਦਾ ਹੈ ਤੇ ਇਸਦੀ ਲੋਕ ਗਿਣਤੀ ਇੱਕ ਕਰੋੜ ਦੇ ਨੇੜੇ ਹੈ ।]
+op string: [shahmukhi] [لہور پاکستانی پنجاب دا دارالحکومت اے۔ لوک گنتی دے نال کراچی توں بعد لہور دوجا سبھ توں وڈا شہر اے۔ لہور پاکستان دا سیاسی، رہتلی تے پڑھائی دا گڑھ اے تے اس لئی ایھنوں پاکستان دا دل وی کیھا جاندا اے۔ لہور دریاۓ راوی دے کنڈھے تے وسدا اے اسدی لوک گنتی اک کروڑ دے نیڑے اے ۔]
+op string: [tranliteration] [lahor pākistān panjāb dā dārul hakūmat ē. lōk giṇtī dē nāḷ karācī tō᷈ bāad lahor dūjā sab tō᷈ vaḍḍā shahr ē. lahor pākistān dā siāsī, rahtalī tē paṛā̀ī dā gā́ṛ ē tē is laī ihnū᷈ pākistān dā dil vī kehā jāndā ē. lahor dariāē rāvī dē kanḍē tē vasdā ē. isdī lōk giṇtī ikk karōṛ dē nēṛē ē.]
+op close_container: [indian-languages] []
+op open_container: [employees] []
+op open_leaf_list: [wc] []
+op string: [wc] [෴ - 0xdf4 - 1]
+op string: [wc] [ණ - 0xdab - 1]
+op string: [wc] [් - 0xdca - 0]
+op string: [wc] [ණ - 0xdab - 1]
+op string: [wc] [្ - 0x17d2 - 0]
+op string: [wc] [෴ - 0xdf4 - 1]
+op string: [wc] [1 - 0x31 - 1]
+op string: [wc] [͏ - 0x34f - 0]
+op string: [wc] [2 - 0x32 - 1]
+op string: [wc] [⃝ - 0x20dd - 0]
+op close_leaf_list: [wc] []
+op string: [fancy] [1͏2⃝]
+op string: [v1] [γιγνώσκειν]
+op string: [v2] [ὦ ἄνδρες ᾿Αθηναῖοι]
+op string: [v1] [ახლავე გაიაროთ რეგისტრაცია]
+op string: [v2] [Unicode-ის მეათე საერთაშორისო]
+op content: [width] [55]
+op string: [sinhala] [෴ණ්ණ෴]
+op content: [width] [4]
+op string: [sinhala] [෴]
+op content: [width] [1]
+op string: [sinhala] [෴ණ්ණ෴෴ණ්ණ෴]
+op content: [width] [8]
+op string: [not-sinhala] [123456]
+op string: [tag] [ර්‍ඝ]
+op content: [width] [2]
+op open_list: [employee] []
+op open_instance: [employee] []
+op string: [first-name] [Jim]
+op string: [nic-name] ["რეგტ"]
+op string: [last-name] [გთხოვთ ახ]
+op content: [department] [431]
+op content: [percent-time] [90]
+op attr: [full-time] [honest & for true]
+op string: [benefits] [full]
+op close_instance: [employee] []
+op open_instance: [employee] []
+op string: [first-name] [Terry]
+op string: [nic-name] ["<one"]
+op string: [last-name] [Οὐχὶ ταὐτὰ παρίσταταί μοι Jones]
+op content: [department] [660]
+op content: [percent-time] [90]
+op attr: [full-time] [honest & for true]
+op string: [benefits] [full]
+op close_instance: [employee] []
+op open_instance: [employee] []
+op string: [first-name] [Leslie]
+op string: [nic-name] ["Les"]
+op string: [last-name] [Patterson]
+op content: [department] [341]
+op content: [percent-time] [60]
+op attr: [full-time] [honest & for true]
+op string: [benefits] [full]
+op close_instance: [employee] []
+op open_instance: [employee] []
+op string: [first-name] [Ashley]
+op string: [nic-name] ["Ash"]
+op string: [last-name] [Meter & Smith]
+op content: [department] [1440]
+op content: [percent-time] [40]
+op close_instance: [employee] []
+op open_instance: [employee] []
+op string: [first-name] [0123456789]
+op string: [nic-name] ["0123456789"]
+op string: [last-name] [012345678901234567890]
+op content: [department] [1440]
+op content: [percent-time] [40]
+op close_instance: [employee] []
+op open_instance: [employee] []
+op string: [first-name] [ახლა]
+op string: [nic-name] ["გაიარო"]
+op string: [last-name] [საერთაშორისო]
+op content: [department] [123]
+op content: [percent-time] [90]
+op attr: [full-time] [honest & for true]
+op string: [benefits] [full]
+op close_instance: [employee] []
+op open_instance: [employee] []
+op string: [first-name] [෴ණ්ණ෴෴ණ්ණ෴]
+op string: [nic-name] ["Mick"]
+op string: [last-name] [෴ණ්ණ෴෴ණ්ණ෴෴ණ්ණ෴෴෴]
+op content: [department] [110]
+op content: [percent-time] [20]
+op close_instance: [employee] []
+op close_list: [employee] []
+op close_container: [employees] []
+op finish: [] []
+op flush: [] []
diff --git a/0.4.6/tests/core/saved/test_05.H.err b/0.4.6/tests/core/saved/test_05.H.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_05.H.err
diff --git a/0.4.6/tests/core/saved/test_05.H.out b/0.4.6/tests/core/saved/test_05.H.out
new file mode 100644
index 0000000..e8fd6d1
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_05.H.out
@@ -0,0 +1 @@
+<div class="line"><div class="title">Sample text</div></div><div class="line"><div class="text">This sample text was taken from the Punjabi Wikipedia article on Lahore and transliterated into the Latin script.</div></div><div class="line"><div class="title">Gurmukhi:</div></div><div class="line"><div class="data" data-tag="gurmukhi">ਲਹੌਰ ਪਾਕਿਸਤਾਨੀ ਪੰਜਾਬ ਦੀ ਰਾਜਧਾਨੀ ਹੈ । ਲੋਕ ਗਿਣਤੀ ਦੇ ਨਾਲ ਕਰਾਚੀ ਤੋਂ ਬਾਅਦ ਲਹੌਰ ਦੂਜਾ ਸਭ ਤੋਂ ਵੱਡਾ ਸ਼ਹਿਰ ਹੈ । ਲਹੌਰ ਪਾਕਿਸਤਾਨ ਦਾ ਸਿਆਸੀ, ਰਹਤਲੀ ਤੇ ਪੜ੍ਹਾਈ ਦਾ ਗੜ੍ਹ ਹੈ ਅਤੇ ਇਸ ਲਈ ਇਹਨੂੰ ਪਾਕਿਸਤਾਨ ਦਾ ਦਿਲ ਵੀ ਕਿਹਾ ਜਾਂਦਾ ਹੈ । ਲਹੌਰ ਦਰਿਆ-ਏ-ਰਾਵੀ ਦੇ ਕੰਢੇ ਤੇ ਵਸਦਾ ਹੈ ਤੇ ਇਸਦੀ ਲੋਕ ਗਿਣਤੀ ਇੱਕ ਕਰੋੜ ਦੇ ਨੇੜੇ ਹੈ ।</div></div><div class="line"><div class="title">Shahmukhi:</div></div><div class="line"><div class="data" data-tag="shahmukhi">لہور پاکستانی پنجاب دا دارالحکومت اے۔ لوک گنتی دے نال کراچی توں بعد لہور دوجا سبھ توں وڈا شہر اے۔ لہور پاکستان دا سیاسی، رہتلی تے پڑھائی دا گڑھ اے تے اس لئی ایھنوں پاکستان دا دل وی کیھا جاندا اے۔ لہور دریاۓ راوی دے کنڈھے تے وسدا اے اسدی لوک گنتی اک کروڑ دے نیڑے اے ۔</div></div><div class="line"><div class="title">Transliteration</div><div class="text">:</div></div><div class="line"><div class="data" data-tag="tranliteration">lahor pākistān panjāb dā dārul hakūmat ē. lōk giṇtī dē nāḷ karācī tō᷈ bāad lahor dūjā sab tō᷈ vaḍḍā shahr ē. lahor pākistān dā siāsī, rahtalī tē paṛā̀ī dā gā́ṛ ē tē is laī ihnū᷈ pākistān dā dil vī kehā jāndā ē. lahor dariāē rāvī dē kanḍē tē vasdā ē. isdī lōk giṇtī ikk karōṛ dē nēṛē ē.</div></div><div class="line"><div class="text">Wide char: </div><div class="data" data-tag="wc">෴ - 0xdf4 - 1</div></div><div class="line"><div class="text">Wide char: </div><div class="data" data-tag="wc">ණ - 0xdab - 1</div></div><div class="line"><div class="text">Wide char: </div><div class="data" data-tag="wc">් - 0xdca - 0</div></div><div class="line"><div class="text">Wide char: </div><div class="data" data-tag="wc">ණ - 0xdab - 1</div></div><div class="line"><div class="text">Wide char: </div><div class="data" data-tag="wc">្ - 0x17d2 - 0</div></div><div class="line"><div class="text">Wide char: </div><div class="data" data-tag="wc">෴ - 0xdf4 - 1</div></div><div class="line"><div class="text">Wide char: </div><div class="data" data-tag="wc">1 - 0x31 - 1</div></div><div class="line"><div class="text">Wide char: </div><div class="data" data-tag="wc">͏ - 0x34f - 0</div></div><div class="line"><div class="text">Wide char: </div><div class="data" data-tag="wc">2 - 0x32 - 1</div></div><div class="line"><div class="text">Wide char: </div><div class="data" data-tag="wc">⃝ - 0x20dd - 0</div></div><div class="line"><div class="text">Cool: [</div><div class="data" data-tag="fancy">1͏2⃝</div><div class="text">]</div></div><div class="line"><div class="text">Οὐχὶ ταὐτὰ παρίσταταί μοι </div><div class="data" data-tag="v1">γιγνώσκειν</div><div class="text">, </div><div class="data" data-tag="v2">ὦ ἄνδρες ᾿Αθηναῖοι</div></div><div class="line"><div class="text">გთხოვთ </div><div class="data" data-tag="v1">ახლავე გაიაროთ რეგისტრაცია</div><div class="text"> </div><div class="data" data-tag="v2">Unicode-ის მეათე საერთაშორისო</div></div><div class="line"><div class="title">Width</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="width">63</div></div><div class="line"><div class="text">[</div><div class="data" data-tag="sinhala">෴ණ්ණ෴</div><div class="text">]</div></div><div class="line"><div class="title">Width</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="width">6</div></div><div class="line"><div class="text">[</div><div class="data" data-tag="sinhala">෴</div><div class="text">]</div></div><div class="line"><div class="title">Width</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="width">3</div></div><div class="line"><div class="text">[</div><div class="data" data-tag="sinhala">෴ණ්ණ෴</div><div class="text">]</div></div><div class="line"><div class="title">Width</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="width">6</div></div><div class="line"><div class="text">[</div><div class="data" data-tag="not-sinhala">1234</div><div class="text">]</div></div><div class="line"><div class="text">[</div><div class="data" data-tag="tag">ර්‍ඝ</div><div class="text">]</div></div><div class="line"><div class="title">Width</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="width">4</div></div><div class="line"><div class="title">First Name </div><div class="title">Last Name </div><div class="title">Department </div><div class="title">Time (%)</div></div><div class="line"><div class="data" data-tag="first-name">Jim</div><div class="text"> (</div><div class="data" data-tag="nic-name">"რეგტ"</div><div class="text">)</div><div class="padding"> </div><div class="data" data-tag="last-name">გთხოვთ ახ </div><div class="data" data-tag="department"> 431</div><div class="data" data-tag="percent-time"> 90</div></div><div class="line"><div class="data" data-tag="first-name">Terry</div><div class="text"> (</div><div class="data" data-tag="nic-name">"&lt;one"</div><div class="text">)</div><div class="padding"> </div><div class="data" data-tag="last-name">Οὐχὶ ταὐτὰ παρ</div><div class="data" data-tag="department"> 660</div><div class="data" data-tag="percent-time"> 90</div></div><div class="line"><div class="data" data-tag="first-name">Leslie</div><div class="text"> (</div><div class="data" data-tag="nic-name">"Les"</div><div class="text">)</div><div class="padding"> </div><div class="data" data-tag="last-name">Patterson </div><div class="data" data-tag="department"> 341</div><div class="data" data-tag="percent-time"> 60</div></div><div class="line"><div class="data" data-tag="first-name">Ashley</div><div class="text"> (</div><div class="data" data-tag="nic-name">"Ash"</div><div class="text">)</div><div class="padding"> </div><div class="data" data-tag="last-name">Meter &amp; Smith </div><div class="data" data-tag="department"> 1440</div><div class="data" data-tag="percent-time"> 40</div></div><div class="line"><div class="data" data-tag="first-name">0123456789</div><div class="text"> (</div><div class="data" data-tag="nic-name">"0123456789"</div><div class="text">)</div><div class="data" data-tag="last-name">01234567890123</div><div class="data" data-tag="department"> 1440</div><div class="data" data-tag="percent-time"> 40</div></div><div class="line"><div class="data" data-tag="first-name">ახლა</div><div class="text"> (</div><div class="data" data-tag="nic-name">"გაიარო"</div><div class="text">)</div><div class="padding"> </div><div class="data" data-tag="last-name">საერთაშორისო </div><div class="data" data-tag="department"> 123</div><div class="data" data-tag="percent-time"> 90</div></div><div class="line"><div class="data" data-tag="first-name">෴ණ්ණ෴෴ණ්ණ෴</div><div class="text"> (</div><div class="data" data-tag="nic-name">"Mick"</div><div class="text">)</div><div class="padding"> </div><div class="data" data-tag="last-name">෴ණ්ණ෴෴ණ්ණ෴෴ණ්ණ෴෴෴</div><div class="data" data-tag="department"> 110</div><div class="data" data-tag="percent-time"> 20</div></div> \ No newline at end of file
diff --git a/0.4.6/tests/core/saved/test_05.HIPx.err b/0.4.6/tests/core/saved/test_05.HIPx.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_05.HIPx.err
diff --git a/0.4.6/tests/core/saved/test_05.HIPx.out b/0.4.6/tests/core/saved/test_05.HIPx.out
new file mode 100644
index 0000000..4389b85
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_05.HIPx.out
@@ -0,0 +1,212 @@
+<div class="line">
+ <div class="title">Sample text</div>
+</div>
+<div class="line">
+ <div class="text">This sample text was taken from the Punjabi Wikipedia article on Lahore and transliterated into the Latin script.</div>
+</div>
+<div class="line">
+ <div class="title">Gurmukhi:</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="gurmukhi" data-xpath="/indian-languages/gurmukhi">ਲਹੌਰ ਪਾਕਿਸਤਾਨੀ ਪੰਜਾਬ ਦੀ ਰਾਜਧਾਨੀ ਹੈ । ਲੋਕ ਗਿਣਤੀ ਦੇ ਨਾਲ ਕਰਾਚੀ ਤੋਂ ਬਾਅਦ ਲਹੌਰ ਦੂਜਾ ਸਭ ਤੋਂ ਵੱਡਾ ਸ਼ਹਿਰ ਹੈ । ਲਹੌਰ ਪਾਕਿਸਤਾਨ ਦਾ ਸਿਆਸੀ, ਰਹਤਲੀ ਤੇ ਪੜ੍ਹਾਈ ਦਾ ਗੜ੍ਹ ਹੈ ਅਤੇ ਇਸ ਲਈ ਇਹਨੂੰ ਪਾਕਿਸਤਾਨ ਦਾ ਦਿਲ ਵੀ ਕਿਹਾ ਜਾਂਦਾ ਹੈ । ਲਹੌਰ ਦਰਿਆ-ਏ-ਰਾਵੀ ਦੇ ਕੰਢੇ ਤੇ ਵਸਦਾ ਹੈ ਤੇ ਇਸਦੀ ਲੋਕ ਗਿਣਤੀ ਇੱਕ ਕਰੋੜ ਦੇ ਨੇੜੇ ਹੈ ।</div>
+</div>
+<div class="line">
+ <div class="title">Shahmukhi:</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="shahmukhi" data-xpath="/indian-languages/shahmukhi">لہور پاکستانی پنجاب دا دارالحکومت اے۔ لوک گنتی دے نال کراچی توں بعد لہور دوجا سبھ توں وڈا شہر اے۔ لہور پاکستان دا سیاسی، رہتلی تے پڑھائی دا گڑھ اے تے اس لئی ایھنوں پاکستان دا دل وی کیھا جاندا اے۔ لہور دریاۓ راوی دے کنڈھے تے وسدا اے اسدی لوک گنتی اک کروڑ دے نیڑے اے ۔</div>
+</div>
+<div class="line">
+ <div class="title">Transliteration</div>
+ <div class="text">:</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="tranliteration" data-xpath="/indian-languages/tranliteration">lahor pākistān panjāb dā dārul hakūmat ē. lōk giṇtī dē nāḷ karācī tō᷈ bāad lahor dūjā sab tō᷈ vaḍḍā shahr ē. lahor pākistān dā siāsī, rahtalī tē paṛā̀ī dā gā́ṛ ē tē is laī ihnū᷈ pākistān dā dil vī kehā jāndā ē. lahor dariāē rāvī dē kanḍē tē vasdā ē. isdī lōk giṇtī ikk karōṛ dē nēṛē ē.</div>
+</div>
+<div class="line">
+ <div class="text">Wide char: </div>
+ <div class="data" data-tag="wc" data-xpath="/employees/wc">෴ - 0xdf4 - 1</div>
+</div>
+<div class="line">
+ <div class="text">Wide char: </div>
+ <div class="data" data-tag="wc" data-xpath="/employees/wc">ණ - 0xdab - 1</div>
+</div>
+<div class="line">
+ <div class="text">Wide char: </div>
+ <div class="data" data-tag="wc" data-xpath="/employees/wc">් - 0xdca - 0</div>
+</div>
+<div class="line">
+ <div class="text">Wide char: </div>
+ <div class="data" data-tag="wc" data-xpath="/employees/wc">ණ - 0xdab - 1</div>
+</div>
+<div class="line">
+ <div class="text">Wide char: </div>
+ <div class="data" data-tag="wc" data-xpath="/employees/wc">្ - 0x17d2 - 0</div>
+</div>
+<div class="line">
+ <div class="text">Wide char: </div>
+ <div class="data" data-tag="wc" data-xpath="/employees/wc">෴ - 0xdf4 - 1</div>
+</div>
+<div class="line">
+ <div class="text">Wide char: </div>
+ <div class="data" data-tag="wc" data-xpath="/employees/wc">1 - 0x31 - 1</div>
+</div>
+<div class="line">
+ <div class="text">Wide char: </div>
+ <div class="data" data-tag="wc" data-xpath="/employees/wc">͏ - 0x34f - 0</div>
+</div>
+<div class="line">
+ <div class="text">Wide char: </div>
+ <div class="data" data-tag="wc" data-xpath="/employees/wc">2 - 0x32 - 1</div>
+</div>
+<div class="line">
+ <div class="text">Wide char: </div>
+ <div class="data" data-tag="wc" data-xpath="/employees/wc">⃝ - 0x20dd - 0</div>
+</div>
+<div class="line">
+ <div class="text">Cool: [</div>
+ <div class="data" data-tag="fancy" data-xpath="/employees/fancy">1͏2⃝</div>
+ <div class="text">]</div>
+</div>
+<div class="line">
+ <div class="text">Οὐχὶ ταὐτὰ παρίσταταί μοι </div>
+ <div class="data" data-tag="v1" data-xpath="/employees/v1">γιγνώσκειν</div>
+ <div class="text">, </div>
+ <div class="data" data-tag="v2" data-xpath="/employees/v2">ὦ ἄνδρες ᾿Αθηναῖοι</div>
+</div>
+<div class="line">
+ <div class="text">გთხოვთ </div>
+ <div class="data" data-tag="v1" data-xpath="/employees/v1">ახლავე გაიაროთ რეგისტრაცია</div>
+ <div class="text"> </div>
+ <div class="data" data-tag="v2" data-xpath="/employees/v2">Unicode-ის მეათე საერთაშორისო</div>
+</div>
+<div class="line">
+ <div class="title">Width</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="width" data-xpath="/employees/width">63</div>
+</div>
+<div class="line">
+ <div class="text">[</div>
+ <div class="data" data-tag="sinhala" data-xpath="/employees/sinhala">෴ණ්ණ෴</div>
+ <div class="text">]</div>
+</div>
+<div class="line">
+ <div class="title">Width</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="width" data-xpath="/employees/width">6</div>
+</div>
+<div class="line">
+ <div class="text">[</div>
+ <div class="data" data-tag="sinhala" data-xpath="/employees/sinhala">෴</div>
+ <div class="text">]</div>
+</div>
+<div class="line">
+ <div class="title">Width</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="width" data-xpath="/employees/width">3</div>
+</div>
+<div class="line">
+ <div class="text">[</div>
+ <div class="data" data-tag="sinhala" data-xpath="/employees/sinhala">෴ණ්ණ෴</div>
+ <div class="text">]</div>
+</div>
+<div class="line">
+ <div class="title">Width</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="width" data-xpath="/employees/width">6</div>
+</div>
+<div class="line">
+ <div class="text">[</div>
+ <div class="data" data-tag="not-sinhala" data-xpath="/employees/not-sinhala">1234</div>
+ <div class="text">]</div>
+</div>
+<div class="line">
+ <div class="text">[</div>
+ <div class="data" data-tag="tag" data-xpath="/employees/tag">ර්‍ඝ</div>
+ <div class="text">]</div>
+</div>
+<div class="line">
+ <div class="title">Width</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="width" data-xpath="/employees/width">4</div>
+</div>
+<div class="line">
+ <div class="title">First Name </div>
+ <div class="title">Last Name </div>
+ <div class="title">Department </div>
+ <div class="title">Time (%)</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="first-name" data-xpath="/employees/employee/first-name" data-type="string" data-help="First name of employee">Jim</div>
+ <div class="text"> (</div>
+ <div class="data" data-tag="nic-name" data-xpath="/employees/employee/nic-name">"რეგტ"</div>
+ <div class="text">)</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="last-name" data-xpath="/employees/employee/last-name" data-type="string" data-help="Last name of employee">გთხოვთ ახ </div>
+ <div class="data" data-tag="department" data-xpath="/employees/employee/department"> 431</div>
+ <div class="data" data-tag="percent-time" data-xpath="/employees/employee/percent-time" data-type="number" data-help="Percentage of full &amp; part time (%)"> 90</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="first-name" data-xpath="/employees/employee/first-name" data-type="string" data-help="First name of employee">Terry</div>
+ <div class="text"> (</div>
+ <div class="data" data-tag="nic-name" data-xpath="/employees/employee/nic-name">"&lt;one"</div>
+ <div class="text">)</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="last-name" data-xpath="/employees/employee/last-name" data-type="string" data-help="Last name of employee">Οὐχὶ ταὐτὰ παρ</div>
+ <div class="data" data-tag="department" data-xpath="/employees/employee/department"> 660</div>
+ <div class="data" data-tag="percent-time" data-xpath="/employees/employee/percent-time" data-type="number" data-help="Percentage of full &amp; part time (%)"> 90</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="first-name" data-xpath="/employees/employee/first-name" data-type="string" data-help="First name of employee">Leslie</div>
+ <div class="text"> (</div>
+ <div class="data" data-tag="nic-name" data-xpath="/employees/employee/nic-name">"Les"</div>
+ <div class="text">)</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="last-name" data-xpath="/employees/employee/last-name" data-type="string" data-help="Last name of employee">Patterson </div>
+ <div class="data" data-tag="department" data-xpath="/employees/employee/department"> 341</div>
+ <div class="data" data-tag="percent-time" data-xpath="/employees/employee/percent-time" data-type="number" data-help="Percentage of full &amp; part time (%)"> 60</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="first-name" data-xpath="/employees/employee/first-name" data-type="string" data-help="First name of employee">Ashley</div>
+ <div class="text"> (</div>
+ <div class="data" data-tag="nic-name" data-xpath="/employees/employee/nic-name">"Ash"</div>
+ <div class="text">)</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="last-name" data-xpath="/employees/employee/last-name" data-type="string" data-help="Last name of employee">Meter &amp; Smith </div>
+ <div class="data" data-tag="department" data-xpath="/employees/employee/department"> 1440</div>
+ <div class="data" data-tag="percent-time" data-xpath="/employees/employee/percent-time" data-type="number" data-help="Percentage of full &amp; part time (%)"> 40</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="first-name" data-xpath="/employees/employee/first-name" data-type="string" data-help="First name of employee">0123456789</div>
+ <div class="text"> (</div>
+ <div class="data" data-tag="nic-name" data-xpath="/employees/employee/nic-name">"0123456789"</div>
+ <div class="text">)</div>
+ <div class="data" data-tag="last-name" data-xpath="/employees/employee/last-name" data-type="string" data-help="Last name of employee">01234567890123</div>
+ <div class="data" data-tag="department" data-xpath="/employees/employee/department"> 1440</div>
+ <div class="data" data-tag="percent-time" data-xpath="/employees/employee/percent-time" data-type="number" data-help="Percentage of full &amp; part time (%)"> 40</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="first-name" data-xpath="/employees/employee/first-name" data-type="string" data-help="First name of employee">ახლა</div>
+ <div class="text"> (</div>
+ <div class="data" data-tag="nic-name" data-xpath="/employees/employee/nic-name">"გაიარო"</div>
+ <div class="text">)</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="last-name" data-xpath="/employees/employee/last-name" data-type="string" data-help="Last name of employee">საერთაშორისო </div>
+ <div class="data" data-tag="department" data-xpath="/employees/employee/department"> 123</div>
+ <div class="data" data-tag="percent-time" data-xpath="/employees/employee/percent-time" data-type="number" data-help="Percentage of full &amp; part time (%)"> 90</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="first-name" data-xpath="/employees/employee/first-name" data-type="string" data-help="First name of employee">෴ණ්ණ෴෴ණ්ණ෴</div>
+ <div class="text"> (</div>
+ <div class="data" data-tag="nic-name" data-xpath="/employees/employee/nic-name">"Mick"</div>
+ <div class="text">)</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="last-name" data-xpath="/employees/employee/last-name" data-type="string" data-help="Last name of employee">෴ණ්ණ෴෴ණ්ණ෴෴ණ්ණ෴෴෴</div>
+ <div class="data" data-tag="department" data-xpath="/employees/employee/department"> 110</div>
+ <div class="data" data-tag="percent-time" data-xpath="/employees/employee/percent-time" data-type="number" data-help="Percentage of full &amp; part time (%)"> 20</div>
+</div>
diff --git a/0.4.6/tests/core/saved/test_05.HP.err b/0.4.6/tests/core/saved/test_05.HP.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_05.HP.err
diff --git a/0.4.6/tests/core/saved/test_05.HP.out b/0.4.6/tests/core/saved/test_05.HP.out
new file mode 100644
index 0000000..e3fcdda
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_05.HP.out
@@ -0,0 +1,212 @@
+<div class="line">
+ <div class="title">Sample text</div>
+</div>
+<div class="line">
+ <div class="text">This sample text was taken from the Punjabi Wikipedia article on Lahore and transliterated into the Latin script.</div>
+</div>
+<div class="line">
+ <div class="title">Gurmukhi:</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="gurmukhi">ਲਹੌਰ ਪਾਕਿਸਤਾਨੀ ਪੰਜਾਬ ਦੀ ਰਾਜਧਾਨੀ ਹੈ । ਲੋਕ ਗਿਣਤੀ ਦੇ ਨਾਲ ਕਰਾਚੀ ਤੋਂ ਬਾਅਦ ਲਹੌਰ ਦੂਜਾ ਸਭ ਤੋਂ ਵੱਡਾ ਸ਼ਹਿਰ ਹੈ । ਲਹੌਰ ਪਾਕਿਸਤਾਨ ਦਾ ਸਿਆਸੀ, ਰਹਤਲੀ ਤੇ ਪੜ੍ਹਾਈ ਦਾ ਗੜ੍ਹ ਹੈ ਅਤੇ ਇਸ ਲਈ ਇਹਨੂੰ ਪਾਕਿਸਤਾਨ ਦਾ ਦਿਲ ਵੀ ਕਿਹਾ ਜਾਂਦਾ ਹੈ । ਲਹੌਰ ਦਰਿਆ-ਏ-ਰਾਵੀ ਦੇ ਕੰਢੇ ਤੇ ਵਸਦਾ ਹੈ ਤੇ ਇਸਦੀ ਲੋਕ ਗਿਣਤੀ ਇੱਕ ਕਰੋੜ ਦੇ ਨੇੜੇ ਹੈ ।</div>
+</div>
+<div class="line">
+ <div class="title">Shahmukhi:</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="shahmukhi">لہور پاکستانی پنجاب دا دارالحکومت اے۔ لوک گنتی دے نال کراچی توں بعد لہور دوجا سبھ توں وڈا شہر اے۔ لہور پاکستان دا سیاسی، رہتلی تے پڑھائی دا گڑھ اے تے اس لئی ایھنوں پاکستان دا دل وی کیھا جاندا اے۔ لہور دریاۓ راوی دے کنڈھے تے وسدا اے اسدی لوک گنتی اک کروڑ دے نیڑے اے ۔</div>
+</div>
+<div class="line">
+ <div class="title">Transliteration</div>
+ <div class="text">:</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="tranliteration">lahor pākistān panjāb dā dārul hakūmat ē. lōk giṇtī dē nāḷ karācī tō᷈ bāad lahor dūjā sab tō᷈ vaḍḍā shahr ē. lahor pākistān dā siāsī, rahtalī tē paṛā̀ī dā gā́ṛ ē tē is laī ihnū᷈ pākistān dā dil vī kehā jāndā ē. lahor dariāē rāvī dē kanḍē tē vasdā ē. isdī lōk giṇtī ikk karōṛ dē nēṛē ē.</div>
+</div>
+<div class="line">
+ <div class="text">Wide char: </div>
+ <div class="data" data-tag="wc">෴ - 0xdf4 - 1</div>
+</div>
+<div class="line">
+ <div class="text">Wide char: </div>
+ <div class="data" data-tag="wc">ණ - 0xdab - 1</div>
+</div>
+<div class="line">
+ <div class="text">Wide char: </div>
+ <div class="data" data-tag="wc">් - 0xdca - 0</div>
+</div>
+<div class="line">
+ <div class="text">Wide char: </div>
+ <div class="data" data-tag="wc">ණ - 0xdab - 1</div>
+</div>
+<div class="line">
+ <div class="text">Wide char: </div>
+ <div class="data" data-tag="wc">្ - 0x17d2 - 0</div>
+</div>
+<div class="line">
+ <div class="text">Wide char: </div>
+ <div class="data" data-tag="wc">෴ - 0xdf4 - 1</div>
+</div>
+<div class="line">
+ <div class="text">Wide char: </div>
+ <div class="data" data-tag="wc">1 - 0x31 - 1</div>
+</div>
+<div class="line">
+ <div class="text">Wide char: </div>
+ <div class="data" data-tag="wc">͏ - 0x34f - 0</div>
+</div>
+<div class="line">
+ <div class="text">Wide char: </div>
+ <div class="data" data-tag="wc">2 - 0x32 - 1</div>
+</div>
+<div class="line">
+ <div class="text">Wide char: </div>
+ <div class="data" data-tag="wc">⃝ - 0x20dd - 0</div>
+</div>
+<div class="line">
+ <div class="text">Cool: [</div>
+ <div class="data" data-tag="fancy">1͏2⃝</div>
+ <div class="text">]</div>
+</div>
+<div class="line">
+ <div class="text">Οὐχὶ ταὐτὰ παρίσταταί μοι </div>
+ <div class="data" data-tag="v1">γιγνώσκειν</div>
+ <div class="text">, </div>
+ <div class="data" data-tag="v2">ὦ ἄνδρες ᾿Αθηναῖοι</div>
+</div>
+<div class="line">
+ <div class="text">გთხოვთ </div>
+ <div class="data" data-tag="v1">ახლავე გაიაროთ რეგისტრაცია</div>
+ <div class="text"> </div>
+ <div class="data" data-tag="v2">Unicode-ის მეათე საერთაშორისო</div>
+</div>
+<div class="line">
+ <div class="title">Width</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="width">63</div>
+</div>
+<div class="line">
+ <div class="text">[</div>
+ <div class="data" data-tag="sinhala">෴ණ්ණ෴</div>
+ <div class="text">]</div>
+</div>
+<div class="line">
+ <div class="title">Width</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="width">6</div>
+</div>
+<div class="line">
+ <div class="text">[</div>
+ <div class="data" data-tag="sinhala">෴</div>
+ <div class="text">]</div>
+</div>
+<div class="line">
+ <div class="title">Width</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="width">3</div>
+</div>
+<div class="line">
+ <div class="text">[</div>
+ <div class="data" data-tag="sinhala">෴ණ්ණ෴</div>
+ <div class="text">]</div>
+</div>
+<div class="line">
+ <div class="title">Width</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="width">6</div>
+</div>
+<div class="line">
+ <div class="text">[</div>
+ <div class="data" data-tag="not-sinhala">1234</div>
+ <div class="text">]</div>
+</div>
+<div class="line">
+ <div class="text">[</div>
+ <div class="data" data-tag="tag">ර්‍ඝ</div>
+ <div class="text">]</div>
+</div>
+<div class="line">
+ <div class="title">Width</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="width">4</div>
+</div>
+<div class="line">
+ <div class="title">First Name </div>
+ <div class="title">Last Name </div>
+ <div class="title">Department </div>
+ <div class="title">Time (%)</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="first-name">Jim</div>
+ <div class="text"> (</div>
+ <div class="data" data-tag="nic-name">"რეგტ"</div>
+ <div class="text">)</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="last-name">გთხოვთ ახ </div>
+ <div class="data" data-tag="department"> 431</div>
+ <div class="data" data-tag="percent-time"> 90</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="first-name">Terry</div>
+ <div class="text"> (</div>
+ <div class="data" data-tag="nic-name">"&lt;one"</div>
+ <div class="text">)</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="last-name">Οὐχὶ ταὐτὰ παρ</div>
+ <div class="data" data-tag="department"> 660</div>
+ <div class="data" data-tag="percent-time"> 90</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="first-name">Leslie</div>
+ <div class="text"> (</div>
+ <div class="data" data-tag="nic-name">"Les"</div>
+ <div class="text">)</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="last-name">Patterson </div>
+ <div class="data" data-tag="department"> 341</div>
+ <div class="data" data-tag="percent-time"> 60</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="first-name">Ashley</div>
+ <div class="text"> (</div>
+ <div class="data" data-tag="nic-name">"Ash"</div>
+ <div class="text">)</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="last-name">Meter &amp; Smith </div>
+ <div class="data" data-tag="department"> 1440</div>
+ <div class="data" data-tag="percent-time"> 40</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="first-name">0123456789</div>
+ <div class="text"> (</div>
+ <div class="data" data-tag="nic-name">"0123456789"</div>
+ <div class="text">)</div>
+ <div class="data" data-tag="last-name">01234567890123</div>
+ <div class="data" data-tag="department"> 1440</div>
+ <div class="data" data-tag="percent-time"> 40</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="first-name">ახლა</div>
+ <div class="text"> (</div>
+ <div class="data" data-tag="nic-name">"გაიარო"</div>
+ <div class="text">)</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="last-name">საერთაშორისო </div>
+ <div class="data" data-tag="department"> 123</div>
+ <div class="data" data-tag="percent-time"> 90</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="first-name">෴ණ්ණ෴෴ණ්ණ෴</div>
+ <div class="text"> (</div>
+ <div class="data" data-tag="nic-name">"Mick"</div>
+ <div class="text">)</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="last-name">෴ණ්ණ෴෴ණ්ණ෴෴ණ්ණ෴෴෴</div>
+ <div class="data" data-tag="department"> 110</div>
+ <div class="data" data-tag="percent-time"> 20</div>
+</div>
diff --git a/0.4.6/tests/core/saved/test_05.J.err b/0.4.6/tests/core/saved/test_05.J.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_05.J.err
diff --git a/0.4.6/tests/core/saved/test_05.J.out b/0.4.6/tests/core/saved/test_05.J.out
new file mode 100644
index 0000000..3525c43
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_05.J.out
@@ -0,0 +1,3 @@
+{"indian-languages": {"gurmukhi":"ਲਹੌਰ ਪਾਕਿਸਤਾਨੀ ਪੰਜਾਬ ਦੀ ਰਾਜਧਾਨੀ ਹੈ । ਲੋਕ ਗਿਣਤੀ ਦੇ ਨਾਲ ਕਰਾਚੀ ਤੋਂ ਬਾਅਦ ਲਹੌਰ ਦੂਜਾ ਸਭ ਤੋਂ ਵੱਡਾ ਸ਼ਹਿਰ ਹੈ । ਲਹੌਰ ਪਾਕਿਸਤਾਨ ਦਾ ਸਿਆਸੀ, ਰਹਤਲੀ ਤੇ ਪੜ੍ਹਾਈ ਦਾ ਗੜ੍ਹ ਹੈ ਅਤੇ ਇਸ ਲਈ ਇਹਨੂੰ ਪਾਕਿਸਤਾਨ ਦਾ ਦਿਲ ਵੀ ਕਿਹਾ ਜਾਂਦਾ ਹੈ । ਲਹੌਰ ਦਰਿਆ-ਏ-ਰਾਵੀ ਦੇ ਕੰਢੇ ਤੇ ਵਸਦਾ ਹੈ ਤੇ ਇਸਦੀ ਲੋਕ ਗਿਣਤੀ ਇੱਕ ਕਰੋੜ ਦੇ ਨੇੜੇ ਹੈ ।","shahmukhi":"لہور پاکستانی پنجاب دا دارالحکومت اے۔ لوک گنتی دے نال کراچی توں بعد لہور دوجا سبھ توں وڈا شہر اے۔ لہور پاکستان دا سیاسی، رہتلی تے پڑھائی دا گڑھ اے تے اس لئی ایھنوں پاکستان دا دل وی کیھا جاندا اے۔ لہور دریاۓ راوی دے کنڈھے تے وسدا اے اسدی لوک گنتی اک کروڑ دے نیڑے اے ۔","tranliteration":"lahor pākistān panjāb dā dārul hakūmat ē. lōk giṇtī dē nāḷ karācī tō᷈ bāad lahor dūjā sab tō᷈ vaḍḍā shahr ē. lahor pākistān dā siāsī, rahtalī tē paṛā̀ī dā gā́ṛ ē tē is laī ihnū᷈ pākistān dā dil vī kehā jāndā ē. lahor dariāē rāvī dē kanḍē tē vasdā ē. isdī lōk giṇtī ikk karōṛ dē nēṛē ē."}
+, "employees": {"wc": ["෴ - 0xdf4 - 1","ණ - 0xdab - 1","් - 0xdca - 0","ණ - 0xdab - 1","្ - 0x17d2 - 0","෴ - 0xdf4 - 1","1 - 0x31 - 1","͏ - 0x34f - 0","2 - 0x32 - 1","⃝ - 0x20dd - 0"],"fancy":"1͏2⃝","v1":"γιγνώσκειν","v2":"ὦ ἄνδρες ᾿Αθηναῖοι","v1":"ახლავე გაიაროთ რეგისტრაცია","v2":"Unicode-ის მეათე საერთაშორისო","width":55,"sinhala":"෴ණ්ණ෴","width":4,"sinhala":"෴","width":1,"sinhala":"෴ණ්ණ෴෴ණ්ණ෴","width":8,"not-sinhala":"123456","tag":"ර්‍ඝ","width":2, "employee": [{"first-name":"Jim","nic-name":"\"რეგტ\"","last-name":"გთხოვთ ახ","department":431,"percent-time":90,"benefits":"full"}, {"first-name":"Terry","nic-name":"\"<one\"","last-name":"Οὐχὶ ταὐτὰ παρίσταταί μοι Jones","department":660,"percent-time":90,"benefits":"full"}, {"first-name":"Leslie","nic-name":"\"Les\"","last-name":"Patterson","department":341,"percent-time":60,"benefits":"full"}, {"first-name":"Ashley","nic-name":"\"Ash\"","last-name":"Meter & Smith","department":1440,"percent-time":40}, {"first-name":"0123456789","nic-name":"\"0123456789\"","last-name":"012345678901234567890","department":1440,"percent-time":40}, {"first-name":"ახლა","nic-name":"\"გაიარო\"","last-name":"საერთაშორისო","department":123,"percent-time":90,"benefits":"full"}, {"first-name":"෴ණ්ණ෴෴ණ්ණ෴","nic-name":"\"Mick\"","last-name":"෴ණ්ණ෴෴ණ්ණ෴෴ණ්ණ෴෴෴","department":110,"percent-time":20}]}
+}
diff --git a/0.4.6/tests/core/saved/test_05.JP.err b/0.4.6/tests/core/saved/test_05.JP.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_05.JP.err
diff --git a/0.4.6/tests/core/saved/test_05.JP.out b/0.4.6/tests/core/saved/test_05.JP.out
new file mode 100644
index 0000000..e027034
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_05.JP.out
@@ -0,0 +1,92 @@
+{
+ "indian-languages": {
+ "gurmukhi": "ਲਹੌਰ ਪਾਕਿਸਤਾਨੀ ਪੰਜਾਬ ਦੀ ਰਾਜਧਾਨੀ ਹੈ । ਲੋਕ ਗਿਣਤੀ ਦੇ ਨਾਲ ਕਰਾਚੀ ਤੋਂ ਬਾਅਦ ਲਹੌਰ ਦੂਜਾ ਸਭ ਤੋਂ ਵੱਡਾ ਸ਼ਹਿਰ ਹੈ । ਲਹੌਰ ਪਾਕਿਸਤਾਨ ਦਾ ਸਿਆਸੀ, ਰਹਤਲੀ ਤੇ ਪੜ੍ਹਾਈ ਦਾ ਗੜ੍ਹ ਹੈ ਅਤੇ ਇਸ ਲਈ ਇਹਨੂੰ ਪਾਕਿਸਤਾਨ ਦਾ ਦਿਲ ਵੀ ਕਿਹਾ ਜਾਂਦਾ ਹੈ । ਲਹੌਰ ਦਰਿਆ-ਏ-ਰਾਵੀ ਦੇ ਕੰਢੇ ਤੇ ਵਸਦਾ ਹੈ ਤੇ ਇਸਦੀ ਲੋਕ ਗਿਣਤੀ ਇੱਕ ਕਰੋੜ ਦੇ ਨੇੜੇ ਹੈ ।",
+ "shahmukhi": "لہور پاکستانی پنجاب دا دارالحکومت اے۔ لوک گنتی دے نال کراچی توں بعد لہور دوجا سبھ توں وڈا شہر اے۔ لہور پاکستان دا سیاسی، رہتلی تے پڑھائی دا گڑھ اے تے اس لئی ایھنوں پاکستان دا دل وی کیھا جاندا اے۔ لہور دریاۓ راوی دے کنڈھے تے وسدا اے اسدی لوک گنتی اک کروڑ دے نیڑے اے ۔",
+ "tranliteration": "lahor pākistān panjāb dā dārul hakūmat ē. lōk giṇtī dē nāḷ karācī tō᷈ bāad lahor dūjā sab tō᷈ vaḍḍā shahr ē. lahor pākistān dā siāsī, rahtalī tē paṛā̀ī dā gā́ṛ ē tē is laī ihnū᷈ pākistān dā dil vī kehā jāndā ē. lahor dariāē rāvī dē kanḍē tē vasdā ē. isdī lōk giṇtī ikk karōṛ dē nēṛē ē."
+ }
+,
+ "employees": {
+ "wc": [
+ "෴ - 0xdf4 - 1",
+ "ණ - 0xdab - 1",
+ "් - 0xdca - 0",
+ "ණ - 0xdab - 1",
+ "្ - 0x17d2 - 0",
+ "෴ - 0xdf4 - 1",
+ "1 - 0x31 - 1",
+ "͏ - 0x34f - 0",
+ "2 - 0x32 - 1",
+ "⃝ - 0x20dd - 0"
+ ],
+ "fancy": "1͏2⃝",
+ "v1": "γιγνώσκειν",
+ "v2": "ὦ ἄνδρες ᾿Αθηναῖοι",
+ "v1": "ახლავე გაიაროთ რეგისტრაცია",
+ "v2": "Unicode-ის მეათე საერთაშორისო",
+ "width": 55,
+ "sinhala": "෴ණ්ණ෴",
+ "width": 4,
+ "sinhala": "෴",
+ "width": 1,
+ "sinhala": "෴ණ්ණ෴෴ණ්ණ෴",
+ "width": 8,
+ "not-sinhala": "123456",
+ "tag": "ර්‍ඝ",
+ "width": 2,
+ "employee": [
+ {
+ "first-name": "Jim",
+ "nic-name": "\"რეგტ\"",
+ "last-name": "გთხოვთ ახ",
+ "department": 431,
+ "percent-time": 90,
+ "benefits": "full"
+ },
+ {
+ "first-name": "Terry",
+ "nic-name": "\"<one\"",
+ "last-name": "Οὐχὶ ταὐτὰ παρίσταταί μοι Jones",
+ "department": 660,
+ "percent-time": 90,
+ "benefits": "full"
+ },
+ {
+ "first-name": "Leslie",
+ "nic-name": "\"Les\"",
+ "last-name": "Patterson",
+ "department": 341,
+ "percent-time": 60,
+ "benefits": "full"
+ },
+ {
+ "first-name": "Ashley",
+ "nic-name": "\"Ash\"",
+ "last-name": "Meter & Smith",
+ "department": 1440,
+ "percent-time": 40
+ },
+ {
+ "first-name": "0123456789",
+ "nic-name": "\"0123456789\"",
+ "last-name": "012345678901234567890",
+ "department": 1440,
+ "percent-time": 40
+ },
+ {
+ "first-name": "ახლა",
+ "nic-name": "\"გაიარო\"",
+ "last-name": "საერთაშორისო",
+ "department": 123,
+ "percent-time": 90,
+ "benefits": "full"
+ },
+ {
+ "first-name": "෴ණ්ණ෴෴ණ්ණ෴",
+ "nic-name": "\"Mick\"",
+ "last-name": "෴ණ්ණ෴෴ණ්ණ෴෴ණ්ණ෴෴෴",
+ "department": 110,
+ "percent-time": 20
+ }
+ ]
+ }
+}
diff --git a/0.4.6/tests/core/saved/test_05.T.err b/0.4.6/tests/core/saved/test_05.T.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_05.T.err
diff --git a/0.4.6/tests/core/saved/test_05.T.out b/0.4.6/tests/core/saved/test_05.T.out
new file mode 100644
index 0000000..397a64e
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_05.T.out
@@ -0,0 +1,39 @@
+Sample text
+This sample text was taken from the Punjabi Wikipedia article on Lahore and transliterated into the Latin script.
+Gurmukhi:
+ਲਹੌਰ ਪਾਕਿਸਤਾਨੀ ਪੰਜਾਬ ਦੀ ਰਾਜਧਾਨੀ ਹੈ । ਲੋਕ ਗਿਣਤੀ ਦੇ ਨਾਲ ਕਰਾਚੀ ਤੋਂ ਬਾਅਦ ਲਹੌਰ ਦੂਜਾ ਸਭ ਤੋਂ ਵੱਡਾ ਸ਼ਹਿਰ ਹੈ । ਲਹੌਰ ਪਾਕਿਸਤਾਨ ਦਾ ਸਿਆਸੀ, ਰਹਤਲੀ ਤੇ ਪੜ੍ਹਾਈ ਦਾ ਗੜ੍ਹ ਹੈ ਅਤੇ ਇਸ ਲਈ ਇਹਨੂੰ ਪਾਕਿਸਤਾਨ ਦਾ ਦਿਲ ਵੀ ਕਿਹਾ ਜਾਂਦਾ ਹੈ । ਲਹੌਰ ਦਰਿਆ-ਏ-ਰਾਵੀ ਦੇ ਕੰਢੇ ਤੇ ਵਸਦਾ ਹੈ ਤੇ ਇਸਦੀ ਲੋਕ ਗਿਣਤੀ ਇੱਕ ਕਰੋੜ ਦੇ ਨੇੜੇ ਹੈ ।
+Shahmukhi:
+لہور پاکستانی پنجاب دا دارالحکومت اے۔ لوک گنتی دے نال کراچی توں بعد لہور دوجا سبھ توں وڈا شہر اے۔ لہور پاکستان دا سیاسی، رہتلی تے پڑھائی دا گڑھ اے تے اس لئی ایھنوں پاکستان دا دل وی کیھا جاندا اے۔ لہور دریاۓ راوی دے کنڈھے تے وسدا اے اسدی لوک گنتی اک کروڑ دے نیڑے اے ۔
+Transliteration:
+lahor pākistān panjāb dā dārul hakūmat ē. lōk giṇtī dē nāḷ karācī tō᷈ bāad lahor dūjā sab tō᷈ vaḍḍā shahr ē. lahor pākistān dā siāsī, rahtalī tē paṛā̀ī dā gā́ṛ ē tē is laī ihnū᷈ pākistān dā dil vī kehā jāndā ē. lahor dariāē rāvī dē kanḍē tē vasdā ē. isdī lōk giṇtī ikk karōṛ dē nēṛē ē.
+Wide char: ෴ - 0xdf4 - 1
+Wide char: ණ - 0xdab - 1
+Wide char: ් - 0xdca - 0
+Wide char: ණ - 0xdab - 1
+Wide char: ្ - 0x17d2 - 0
+Wide char: ෴ - 0xdf4 - 1
+Wide char: 1 - 0x31 - 1
+Wide char: ͏ - 0x34f - 0
+Wide char: 2 - 0x32 - 1
+Wide char: ⃝ - 0x20dd - 0
+Cool: [1͏2⃝]
+Οὐχὶ ταὐτὰ παρίσταταί μοι γιγνώσκειν, ὦ ἄνδρες ᾿Αθηναῖοι
+გთხოვთ ახლავე გაიაროთ რეგისტრაცია Unicode-ის მეათე საერთაშორისო
+Width: 63
+[෴ණ්ණ෴]
+Width: 6
+[෴]
+Width: 3
+[෴ණ්ණ෴]
+Width: 6
+[1234]
+[ර්‍ඝ]
+Width: 4
+First Name Last Name Department Time (%)
+Jim ("რეგტ") გთხოვთ ახ 431 90
+Terry ("<one") Οὐχὶ ταὐτὰ παρ 660 90
+Leslie ("Les") Patterson 341 60
+Ashley ("Ash") Meter & Smith 1440 40
+0123456789 ("0123456789")01234567890123 1440 40
+ახლა ("გაიარო") საერთაშორისო 123 90
+෴ණ්ණ෴෴ණ්ණ෴ ("Mick") ෴ණ්ණ෴෴ණ්ණ෴෴ණ්ණ෴෴෴ 110 20
diff --git a/0.4.6/tests/core/saved/test_05.X.err b/0.4.6/tests/core/saved/test_05.X.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_05.X.err
diff --git a/0.4.6/tests/core/saved/test_05.X.out b/0.4.6/tests/core/saved/test_05.X.out
new file mode 100644
index 0000000..2a40010
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_05.X.out
@@ -0,0 +1 @@
+<indian-languages><gurmukhi>ਲਹੌਰ ਪਾਕਿਸਤਾਨੀ ਪੰਜਾਬ ਦੀ ਰਾਜਧਾਨੀ ਹੈ । ਲੋਕ ਗਿਣਤੀ ਦੇ ਨਾਲ ਕਰਾਚੀ ਤੋਂ ਬਾਅਦ ਲਹੌਰ ਦੂਜਾ ਸਭ ਤੋਂ ਵੱਡਾ ਸ਼ਹਿਰ ਹੈ । ਲਹੌਰ ਪਾਕਿਸਤਾਨ ਦਾ ਸਿਆਸੀ, ਰਹਤਲੀ ਤੇ ਪੜ੍ਹਾਈ ਦਾ ਗੜ੍ਹ ਹੈ ਅਤੇ ਇਸ ਲਈ ਇਹਨੂੰ ਪਾਕਿਸਤਾਨ ਦਾ ਦਿਲ ਵੀ ਕਿਹਾ ਜਾਂਦਾ ਹੈ । ਲਹੌਰ ਦਰਿਆ-ਏ-ਰਾਵੀ ਦੇ ਕੰਢੇ ਤੇ ਵਸਦਾ ਹੈ ਤੇ ਇਸਦੀ ਲੋਕ ਗਿਣਤੀ ਇੱਕ ਕਰੋੜ ਦੇ ਨੇੜੇ ਹੈ ।</gurmukhi><shahmukhi>لہور پاکستانی پنجاب دا دارالحکومت اے۔ لوک گنتی دے نال کراچی توں بعد لہور دوجا سبھ توں وڈا شہر اے۔ لہور پاکستان دا سیاسی، رہتلی تے پڑھائی دا گڑھ اے تے اس لئی ایھنوں پاکستان دا دل وی کیھا جاندا اے۔ لہور دریاۓ راوی دے کنڈھے تے وسدا اے اسدی لوک گنتی اک کروڑ دے نیڑے اے ۔</shahmukhi><tranliteration>lahor pākistān panjāb dā dārul hakūmat ē. lōk giṇtī dē nāḷ karācī tō᷈ bāad lahor dūjā sab tō᷈ vaḍḍā shahr ē. lahor pākistān dā siāsī, rahtalī tē paṛā̀ī dā gā́ṛ ē tē is laī ihnū᷈ pākistān dā dil vī kehā jāndā ē. lahor dariāē rāvī dē kanḍē tē vasdā ē. isdī lōk giṇtī ikk karōṛ dē nēṛē ē.</tranliteration></indian-languages><employees><wc>෴ - 0xdf4 - 1</wc><wc>ණ - 0xdab - 1</wc><wc>් - 0xdca - 0</wc><wc>ණ - 0xdab - 1</wc><wc>្ - 0x17d2 - 0</wc><wc>෴ - 0xdf4 - 1</wc><wc>1 - 0x31 - 1</wc><wc>͏ - 0x34f - 0</wc><wc>2 - 0x32 - 1</wc><wc>⃝ - 0x20dd - 0</wc><fancy>1͏2⃝</fancy><v1>γιγνώσκειν</v1><v2>ὦ ἄνδρες ᾿Αθηναῖοι</v2><v1>ახლავე გაიაროთ რეგისტრაცია</v1><v2>Unicode-ის მეათე საერთაშორისო</v2><width>55</width><sinhala>෴ණ්ණ෴</sinhala><width>4</width><sinhala>෴</sinhala><width>1</width><sinhala>෴ණ්ණ෴෴ණ්ණ෴</sinhala><width>8</width><not-sinhala>123456</not-sinhala><tag>ර්‍ඝ</tag><width>2</width><employee><first-name>Jim</first-name><nic-name>"რეგტ"</nic-name><last-name>გთხოვთ ახ</last-name><department>431</department><percent-time>90</percent-time><benefits full-time="honest &amp; for true">full</benefits></employee><employee><first-name>Terry</first-name><nic-name>"&lt;one"</nic-name><last-name>Οὐχὶ ταὐτὰ παρίσταταί μοι Jones</last-name><department>660</department><percent-time>90</percent-time><benefits full-time="honest &amp; for true">full</benefits></employee><employee><first-name>Leslie</first-name><nic-name>"Les"</nic-name><last-name>Patterson</last-name><department>341</department><percent-time>60</percent-time><benefits full-time="honest &amp; for true">full</benefits></employee><employee><first-name>Ashley</first-name><nic-name>"Ash"</nic-name><last-name>Meter &amp; Smith</last-name><department>1440</department><percent-time>40</percent-time></employee><employee><first-name>0123456789</first-name><nic-name>"0123456789"</nic-name><last-name>012345678901234567890</last-name><department>1440</department><percent-time>40</percent-time></employee><employee><first-name>ახლა</first-name><nic-name>"გაიარო"</nic-name><last-name>საერთაშორისო</last-name><department>123</department><percent-time>90</percent-time><benefits full-time="honest &amp; for true">full</benefits></employee><employee><first-name>෴ණ්ණ෴෴ණ්ණ෴</first-name><nic-name>"Mick"</nic-name><last-name>෴ණ්ණ෴෴ණ්ණ෴෴ණ්ණ෴෴෴</last-name><department>110</department><percent-time>20</percent-time></employee></employees> \ No newline at end of file
diff --git a/0.4.6/tests/core/saved/test_05.XP.err b/0.4.6/tests/core/saved/test_05.XP.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_05.XP.err
diff --git a/0.4.6/tests/core/saved/test_05.XP.out b/0.4.6/tests/core/saved/test_05.XP.out
new file mode 100644
index 0000000..cf48b5b
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_05.XP.out
@@ -0,0 +1,85 @@
+<indian-languages>
+ <gurmukhi>ਲਹੌਰ ਪਾਕਿਸਤਾਨੀ ਪੰਜਾਬ ਦੀ ਰਾਜਧਾਨੀ ਹੈ । ਲੋਕ ਗਿਣਤੀ ਦੇ ਨਾਲ ਕਰਾਚੀ ਤੋਂ ਬਾਅਦ ਲਹੌਰ ਦੂਜਾ ਸਭ ਤੋਂ ਵੱਡਾ ਸ਼ਹਿਰ ਹੈ । ਲਹੌਰ ਪਾਕਿਸਤਾਨ ਦਾ ਸਿਆਸੀ, ਰਹਤਲੀ ਤੇ ਪੜ੍ਹਾਈ ਦਾ ਗੜ੍ਹ ਹੈ ਅਤੇ ਇਸ ਲਈ ਇਹਨੂੰ ਪਾਕਿਸਤਾਨ ਦਾ ਦਿਲ ਵੀ ਕਿਹਾ ਜਾਂਦਾ ਹੈ । ਲਹੌਰ ਦਰਿਆ-ਏ-ਰਾਵੀ ਦੇ ਕੰਢੇ ਤੇ ਵਸਦਾ ਹੈ ਤੇ ਇਸਦੀ ਲੋਕ ਗਿਣਤੀ ਇੱਕ ਕਰੋੜ ਦੇ ਨੇੜੇ ਹੈ ।</gurmukhi>
+ <shahmukhi>لہور پاکستانی پنجاب دا دارالحکومت اے۔ لوک گنتی دے نال کراچی توں بعد لہور دوجا سبھ توں وڈا شہر اے۔ لہور پاکستان دا سیاسی، رہتلی تے پڑھائی دا گڑھ اے تے اس لئی ایھنوں پاکستان دا دل وی کیھا جاندا اے۔ لہور دریاۓ راوی دے کنڈھے تے وسدا اے اسدی لوک گنتی اک کروڑ دے نیڑے اے ۔</shahmukhi>
+ <tranliteration>lahor pākistān panjāb dā dārul hakūmat ē. lōk giṇtī dē nāḷ karācī tō᷈ bāad lahor dūjā sab tō᷈ vaḍḍā shahr ē. lahor pākistān dā siāsī, rahtalī tē paṛā̀ī dā gā́ṛ ē tē is laī ihnū᷈ pākistān dā dil vī kehā jāndā ē. lahor dariāē rāvī dē kanḍē tē vasdā ē. isdī lōk giṇtī ikk karōṛ dē nēṛē ē.</tranliteration>
+</indian-languages>
+<employees>
+ <wc>෴ - 0xdf4 - 1</wc>
+ <wc>ණ - 0xdab - 1</wc>
+ <wc>් - 0xdca - 0</wc>
+ <wc>ණ - 0xdab - 1</wc>
+ <wc>្ - 0x17d2 - 0</wc>
+ <wc>෴ - 0xdf4 - 1</wc>
+ <wc>1 - 0x31 - 1</wc>
+ <wc>͏ - 0x34f - 0</wc>
+ <wc>2 - 0x32 - 1</wc>
+ <wc>⃝ - 0x20dd - 0</wc>
+ <fancy>1͏2⃝</fancy>
+ <v1>γιγνώσκειν</v1>
+ <v2>ὦ ἄνδρες ᾿Αθηναῖοι</v2>
+ <v1>ახლავე გაიაროთ რეგისტრაცია</v1>
+ <v2>Unicode-ის მეათე საერთაშორისო</v2>
+ <width>55</width>
+ <sinhala>෴ණ්ණ෴</sinhala>
+ <width>4</width>
+ <sinhala>෴</sinhala>
+ <width>1</width>
+ <sinhala>෴ණ්ණ෴෴ණ්ණ෴</sinhala>
+ <width>8</width>
+ <not-sinhala>123456</not-sinhala>
+ <tag>ර්‍ඝ</tag>
+ <width>2</width>
+ <employee>
+ <first-name>Jim</first-name>
+ <nic-name>"რეგტ"</nic-name>
+ <last-name>გთხოვთ ახ</last-name>
+ <department>431</department>
+ <percent-time>90</percent-time>
+ <benefits full-time="honest &amp; for true">full</benefits>
+ </employee>
+ <employee>
+ <first-name>Terry</first-name>
+ <nic-name>"&lt;one"</nic-name>
+ <last-name>Οὐχὶ ταὐτὰ παρίσταταί μοι Jones</last-name>
+ <department>660</department>
+ <percent-time>90</percent-time>
+ <benefits full-time="honest &amp; for true">full</benefits>
+ </employee>
+ <employee>
+ <first-name>Leslie</first-name>
+ <nic-name>"Les"</nic-name>
+ <last-name>Patterson</last-name>
+ <department>341</department>
+ <percent-time>60</percent-time>
+ <benefits full-time="honest &amp; for true">full</benefits>
+ </employee>
+ <employee>
+ <first-name>Ashley</first-name>
+ <nic-name>"Ash"</nic-name>
+ <last-name>Meter &amp; Smith</last-name>
+ <department>1440</department>
+ <percent-time>40</percent-time>
+ </employee>
+ <employee>
+ <first-name>0123456789</first-name>
+ <nic-name>"0123456789"</nic-name>
+ <last-name>012345678901234567890</last-name>
+ <department>1440</department>
+ <percent-time>40</percent-time>
+ </employee>
+ <employee>
+ <first-name>ახლა</first-name>
+ <nic-name>"გაიარო"</nic-name>
+ <last-name>საერთაშორისო</last-name>
+ <department>123</department>
+ <percent-time>90</percent-time>
+ <benefits full-time="honest &amp; for true">full</benefits>
+ </employee>
+ <employee>
+ <first-name>෴ණ්ණ෴෴ණ්ණ෴</first-name>
+ <nic-name>"Mick"</nic-name>
+ <last-name>෴ණ්ණ෴෴ණ්ණ෴෴ණ්ණ෴෴෴</last-name>
+ <department>110</department>
+ <percent-time>20</percent-time>
+ </employee>
+</employees>
diff --git a/0.4.6/tests/core/saved/test_06.E.err b/0.4.6/tests/core/saved/test_06.E.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_06.E.err
diff --git a/0.4.6/tests/core/saved/test_06.E.out b/0.4.6/tests/core/saved/test_06.E.out
new file mode 100644
index 0000000..3965783
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_06.E.out
@@ -0,0 +1,22 @@
+op create: [] []
+op open_container: [employees] []
+op open_list: [employee] []
+op open_instance: [employee] []
+op string: [first-name] [Terry]
+op string: [last-name] [Jones]
+op content: [department] [660]
+op close_instance: [employee] []
+op open_instance: [employee] []
+op string: [first-name] [Leslie]
+op string: [last-name] [Patterson]
+op content: [department] [341]
+op close_instance: [employee] []
+op open_instance: [employee] []
+op string: [first-name] [Ashley]
+op string: [last-name] [Smith]
+op content: [department] [1440]
+op close_instance: [employee] []
+op close_list: [employee] []
+op close_container: [employees] []
+op finish: [] []
+op flush: [] []
diff --git a/0.4.6/tests/core/saved/test_06.H.err b/0.4.6/tests/core/saved/test_06.H.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_06.H.err
diff --git a/0.4.6/tests/core/saved/test_06.H.out b/0.4.6/tests/core/saved/test_06.H.out
new file mode 100644
index 0000000..6b9ccc4
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_06.H.out
@@ -0,0 +1 @@
+<div class="line"><div class="data" data-tag="first-name">Terry</div><div class="text"> </div><div class="data" data-tag="last-name">Jones</div><div class="text"> works in dept #</div><div class="data" data-tag="department">660</div></div><div class="line"><div class="data" data-tag="first-name">Leslie</div><div class="text"> </div><div class="data" data-tag="last-name">Patterson</div><div class="text"> works in dept #</div><div class="data" data-tag="department">341</div></div><div class="line"><div class="data" data-tag="first-name">Ashley</div><div class="text"> </div><div class="data" data-tag="last-name">Smith</div><div class="text"> works in dept #</div><div class="data" data-tag="department">1440</div></div> \ No newline at end of file
diff --git a/0.4.6/tests/core/saved/test_06.HIPx.err b/0.4.6/tests/core/saved/test_06.HIPx.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_06.HIPx.err
diff --git a/0.4.6/tests/core/saved/test_06.HIPx.out b/0.4.6/tests/core/saved/test_06.HIPx.out
new file mode 100644
index 0000000..bfae221
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_06.HIPx.out
@@ -0,0 +1,21 @@
+<div class="line">
+ <div class="data" data-tag="first-name" data-xpath="/employees/employee/first-name" data-type="string" data-help="First name of employee">Terry</div>
+ <div class="text"> </div>
+ <div class="data" data-tag="last-name" data-xpath="/employees/employee/last-name" data-type="string" data-help="Last name of employee">Jones</div>
+ <div class="text"> works in dept #</div>
+ <div class="data" data-tag="department" data-xpath="/employees/employee/department">660</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="first-name" data-xpath="/employees/employee/first-name" data-type="string" data-help="First name of employee">Leslie</div>
+ <div class="text"> </div>
+ <div class="data" data-tag="last-name" data-xpath="/employees/employee/last-name" data-type="string" data-help="Last name of employee">Patterson</div>
+ <div class="text"> works in dept #</div>
+ <div class="data" data-tag="department" data-xpath="/employees/employee/department">341</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="first-name" data-xpath="/employees/employee/first-name" data-type="string" data-help="First name of employee">Ashley</div>
+ <div class="text"> </div>
+ <div class="data" data-tag="last-name" data-xpath="/employees/employee/last-name" data-type="string" data-help="Last name of employee">Smith</div>
+ <div class="text"> works in dept #</div>
+ <div class="data" data-tag="department" data-xpath="/employees/employee/department">1440</div>
+</div>
diff --git a/0.4.6/tests/core/saved/test_06.HP.err b/0.4.6/tests/core/saved/test_06.HP.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_06.HP.err
diff --git a/0.4.6/tests/core/saved/test_06.HP.out b/0.4.6/tests/core/saved/test_06.HP.out
new file mode 100644
index 0000000..f8b072a
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_06.HP.out
@@ -0,0 +1,21 @@
+<div class="line">
+ <div class="data" data-tag="first-name">Terry</div>
+ <div class="text"> </div>
+ <div class="data" data-tag="last-name">Jones</div>
+ <div class="text"> works in dept #</div>
+ <div class="data" data-tag="department">660</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="first-name">Leslie</div>
+ <div class="text"> </div>
+ <div class="data" data-tag="last-name">Patterson</div>
+ <div class="text"> works in dept #</div>
+ <div class="data" data-tag="department">341</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="first-name">Ashley</div>
+ <div class="text"> </div>
+ <div class="data" data-tag="last-name">Smith</div>
+ <div class="text"> works in dept #</div>
+ <div class="data" data-tag="department">1440</div>
+</div>
diff --git a/0.4.6/tests/core/saved/test_06.J.err b/0.4.6/tests/core/saved/test_06.J.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_06.J.err
diff --git a/0.4.6/tests/core/saved/test_06.J.out b/0.4.6/tests/core/saved/test_06.J.out
new file mode 100644
index 0000000..4ba1fb1
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_06.J.out
@@ -0,0 +1,2 @@
+{"employees": {"employee": [{"first-name":"Terry","last-name":"Jones","department":660}, {"first-name":"Leslie","last-name":"Patterson","department":341}, {"first-name":"Ashley","last-name":"Smith","department":1440}]}
+}
diff --git a/0.4.6/tests/core/saved/test_06.JP.err b/0.4.6/tests/core/saved/test_06.JP.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_06.JP.err
diff --git a/0.4.6/tests/core/saved/test_06.JP.out b/0.4.6/tests/core/saved/test_06.JP.out
new file mode 100644
index 0000000..ff2d5b0
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_06.JP.out
@@ -0,0 +1,21 @@
+{
+ "employees": {
+ "employee": [
+ {
+ "first-name": "Terry",
+ "last-name": "Jones",
+ "department": 660
+ },
+ {
+ "first-name": "Leslie",
+ "last-name": "Patterson",
+ "department": 341
+ },
+ {
+ "first-name": "Ashley",
+ "last-name": "Smith",
+ "department": 1440
+ }
+ ]
+ }
+}
diff --git a/0.4.6/tests/core/saved/test_06.T.err b/0.4.6/tests/core/saved/test_06.T.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_06.T.err
diff --git a/0.4.6/tests/core/saved/test_06.T.out b/0.4.6/tests/core/saved/test_06.T.out
new file mode 100644
index 0000000..da60fb7
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_06.T.out
@@ -0,0 +1,3 @@
+Terry Jones works in dept #660
+Leslie Patterson works in dept #341
+Ashley Smith works in dept #1440
diff --git a/0.4.6/tests/core/saved/test_06.X.err b/0.4.6/tests/core/saved/test_06.X.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_06.X.err
diff --git a/0.4.6/tests/core/saved/test_06.X.out b/0.4.6/tests/core/saved/test_06.X.out
new file mode 100644
index 0000000..a626fb6
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_06.X.out
@@ -0,0 +1 @@
+<employees><employee><first-name>Terry</first-name><last-name>Jones</last-name><department>660</department></employee><employee><first-name>Leslie</first-name><last-name>Patterson</last-name><department>341</department></employee><employee><first-name>Ashley</first-name><last-name>Smith</last-name><department>1440</department></employee></employees> \ No newline at end of file
diff --git a/0.4.6/tests/core/saved/test_06.XP.err b/0.4.6/tests/core/saved/test_06.XP.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_06.XP.err
diff --git a/0.4.6/tests/core/saved/test_06.XP.out b/0.4.6/tests/core/saved/test_06.XP.out
new file mode 100644
index 0000000..b6e7641
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_06.XP.out
@@ -0,0 +1,17 @@
+<employees>
+ <employee>
+ <first-name>Terry</first-name>
+ <last-name>Jones</last-name>
+ <department>660</department>
+ </employee>
+ <employee>
+ <first-name>Leslie</first-name>
+ <last-name>Patterson</last-name>
+ <department>341</department>
+ </employee>
+ <employee>
+ <first-name>Ashley</first-name>
+ <last-name>Smith</last-name>
+ <department>1440</department>
+ </employee>
+</employees>
diff --git a/0.4.6/tests/core/saved/test_07.E.err b/0.4.6/tests/core/saved/test_07.E.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_07.E.err
diff --git a/0.4.6/tests/core/saved/test_07.E.out b/0.4.6/tests/core/saved/test_07.E.out
new file mode 100644
index 0000000..45e4b69
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_07.E.out
@@ -0,0 +1,76 @@
+op create: [] []
+op open_container: [employees] []
+op open_list: [test] []
+op open_instance: [test] []
+op string: [filename] [(null)]
+op close_instance: [test] []
+op close_list: [test] []
+op string: [v1] [γιγνώσκειν]
+op string: [v2] [ὦ ἄνδρες ᾿Αθηναῖοι]
+op content: [columns] [28]
+op content: [columns] [2]
+op string: [v1] [ახლავე გაიაროთ რეგისტრაცია]
+op string: [v2] [Unicode-ის მეათე საერთაშორისო]
+op content: [columns] [55]
+op content: [columns] [0]
+op open_list: [employee] []
+op open_instance: [employee] []
+op string: [first-name] [Jim]
+op string: [nic-name] ["რეგტ"]
+op string: [last-name] [გთხოვთ ახ]
+op content: [department] [431]
+op content: [percent-time] [90]
+op content: [columns] [23]
+op attr: [full-time] [honest & for true]
+op string: [benefits] [full]
+op close_instance: [employee] []
+op open_instance: [employee] []
+op string: [first-name] [Terry]
+op string: [nic-name] ["<one"]
+op string: [last-name] [Οὐχὶ ταὐτὰ παρίσταταί μοι Jones]
+op content: [department] [660]
+op content: [percent-time] [90]
+op content: [columns] [47]
+op attr: [full-time] [honest & for true]
+op string: [benefits] [full]
+op close_instance: [employee] []
+op open_instance: [employee] []
+op string: [first-name] [Leslie]
+op string: [nic-name] ["Les"]
+op string: [last-name] [Patterson]
+op content: [department] [341]
+op content: [percent-time] [60]
+op content: [columns] [25]
+op attr: [full-time] [honest & for true]
+op string: [benefits] [full]
+op close_instance: [employee] []
+op open_instance: [employee] []
+op string: [first-name] [Ashley]
+op string: [nic-name] ["Ash"]
+op string: [last-name] [Meter & Smith]
+op content: [department] [1440]
+op content: [percent-time] [40]
+op content: [columns] [30]
+op close_instance: [employee] []
+op open_instance: [employee] []
+op string: [first-name] [0123456789]
+op string: [nic-name] ["0123456789"]
+op string: [last-name] [012345678901234567890]
+op content: [department] [1440]
+op content: [percent-time] [40]
+op content: [columns] [49]
+op close_instance: [employee] []
+op open_instance: [employee] []
+op string: [first-name] [ახლა]
+op string: [nic-name] ["გაიარო"]
+op string: [last-name] [საერთაშორისო]
+op content: [department] [123]
+op content: [percent-time] [90]
+op content: [columns] [29]
+op attr: [full-time] [honest & for true]
+op string: [benefits] [full]
+op close_instance: [employee] []
+op close_list: [employee] []
+op close_container: [employees] []
+op finish: [] []
+op flush: [] []
diff --git a/0.4.6/tests/core/saved/test_07.H.err b/0.4.6/tests/core/saved/test_07.H.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_07.H.err
diff --git a/0.4.6/tests/core/saved/test_07.H.out b/0.4.6/tests/core/saved/test_07.H.out
new file mode 100644
index 0000000..9fd042b
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_07.H.out
@@ -0,0 +1 @@
+<div class="line"><div class="text">Οὐχὶ ταὐτὰ παρίσταταί μοι </div><div class="data" data-tag="v1">γιγνώσκειν</div><div class="text">, </div><div class="data" data-tag="v2">ὦ ἄνδρες ᾿Αθηναῖοι</div></div><div class="line"><div class="data" data-tag="columns">56</div></div><div class="line"><div class="data" data-tag="columns">2</div></div><div class="line"><div class="text">გთხოვთ </div><div class="data" data-tag="v1">ახლავე გაიაროთ რეგისტრაცია</div><div class="text"> </div><div class="data" data-tag="v2">Unicode-ის მეათე საერთაშორისო</div></div><div class="line"><div class="data" data-tag="columns">63</div></div><div class="line"><div class="title">First Name </div><div class="title">Last Name </div><div class="title">Department </div><div class="title">Time (%)</div></div><div class="line"><div class="data" data-tag="columns">59</div></div><div class="line"><div class="data" data-tag="first-name">Jim</div><div class="text"> (</div><div class="data" data-tag="nic-name">"რეგტ"</div><div class="text">)</div><div class="padding"> </div><div class="data" data-tag="last-name">გთხოვთ ახ </div><div class="data" data-tag="department"> 431</div><div class="data" data-tag="percent-time"> 90</div></div><div class="line"><div class="data" data-tag="columns">55</div></div><div class="line"><div class="data" data-tag="first-name">Terry</div><div class="text"> (</div><div class="data" data-tag="nic-name">"&lt;one"</div><div class="text">)</div><div class="padding"> </div><div class="data" data-tag="last-name">Οὐχὶ ταὐτὰ παρ</div><div class="data" data-tag="department"> 660</div><div class="data" data-tag="percent-time"> 90</div></div><div class="line"><div class="data" data-tag="columns">55</div></div><div class="line"><div class="data" data-tag="first-name">Leslie</div><div class="text"> (</div><div class="data" data-tag="nic-name">"Les"</div><div class="text">)</div><div class="padding"> </div><div class="data" data-tag="last-name">Patterson </div><div class="data" data-tag="department"> 341</div><div class="data" data-tag="percent-time"> 60</div></div><div class="line"><div class="data" data-tag="columns">55</div></div><div class="line"><div class="data" data-tag="first-name">Ashley</div><div class="text"> (</div><div class="data" data-tag="nic-name">"Ash"</div><div class="text">)</div><div class="padding"> </div><div class="data" data-tag="last-name">Meter &amp; Smith </div><div class="data" data-tag="department"> 1440</div><div class="data" data-tag="percent-time"> 40</div></div><div class="line"><div class="data" data-tag="columns">55</div></div><div class="line"><div class="data" data-tag="first-name">0123456789</div><div class="text"> (</div><div class="data" data-tag="nic-name">"0123456789"</div><div class="text">)</div><div class="data" data-tag="last-name">01234567890123</div><div class="data" data-tag="department"> 1440</div><div class="data" data-tag="percent-time"> 40</div></div><div class="line"><div class="data" data-tag="columns">55</div></div><div class="line"><div class="data" data-tag="first-name">ახლა</div><div class="text"> (</div><div class="data" data-tag="nic-name">"გაიარო"</div><div class="text">)</div><div class="padding"> </div><div class="data" data-tag="last-name">საერთაშორისო </div><div class="data" data-tag="department"> 123</div><div class="data" data-tag="percent-time"> 90</div></div><div class="line"><div class="data" data-tag="columns">55</div></div> \ No newline at end of file
diff --git a/0.4.6/tests/core/saved/test_07.HIPx.err b/0.4.6/tests/core/saved/test_07.HIPx.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_07.HIPx.err
diff --git a/0.4.6/tests/core/saved/test_07.HIPx.out b/0.4.6/tests/core/saved/test_07.HIPx.out
new file mode 100644
index 0000000..197c475
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_07.HIPx.out
@@ -0,0 +1,107 @@
+<div class="line">
+ <div class="text">Οὐχὶ ταὐτὰ παρίσταταί μοι </div>
+ <div class="data" data-tag="v1" data-xpath="/employees/v1">γιγνώσκειν</div>
+ <div class="text">, </div>
+ <div class="data" data-tag="v2" data-xpath="/employees/v2">ὦ ἄνδρες ᾿Αθηναῖοι</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="columns" data-xpath="/employees/columns">56</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="columns" data-xpath="/employees/columns">2</div>
+</div>
+<div class="line">
+ <div class="text">გთხოვთ </div>
+ <div class="data" data-tag="v1" data-xpath="/employees/v1">ახლავე გაიაროთ რეგისტრაცია</div>
+ <div class="text"> </div>
+ <div class="data" data-tag="v2" data-xpath="/employees/v2">Unicode-ის მეათე საერთაშორისო</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="columns" data-xpath="/employees/columns">63</div>
+</div>
+<div class="line">
+ <div class="title">First Name </div>
+ <div class="title">Last Name </div>
+ <div class="title">Department </div>
+ <div class="title">Time (%)</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="columns" data-xpath="/employees/columns">59</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="first-name" data-xpath="/employees/employee/first-name" data-type="string" data-help="First name of employee">Jim</div>
+ <div class="text"> (</div>
+ <div class="data" data-tag="nic-name" data-xpath="/employees/employee/nic-name">"რეგტ"</div>
+ <div class="text">)</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="last-name" data-xpath="/employees/employee/last-name" data-type="string" data-help="Last name of employee">გთხოვთ ახ </div>
+ <div class="data" data-tag="department" data-xpath="/employees/employee/department"> 431</div>
+ <div class="data" data-tag="percent-time" data-xpath="/employees/employee/percent-time" data-type="number" data-help="Percentage of full &amp; part time (%)"> 90</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="columns" data-xpath="/employees/employee/columns">55</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="first-name" data-xpath="/employees/employee/first-name" data-type="string" data-help="First name of employee">Terry</div>
+ <div class="text"> (</div>
+ <div class="data" data-tag="nic-name" data-xpath="/employees/employee/nic-name">"&lt;one"</div>
+ <div class="text">)</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="last-name" data-xpath="/employees/employee/last-name" data-type="string" data-help="Last name of employee">Οὐχὶ ταὐτὰ παρ</div>
+ <div class="data" data-tag="department" data-xpath="/employees/employee/department"> 660</div>
+ <div class="data" data-tag="percent-time" data-xpath="/employees/employee/percent-time" data-type="number" data-help="Percentage of full &amp; part time (%)"> 90</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="columns" data-xpath="/employees/employee/columns">55</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="first-name" data-xpath="/employees/employee/first-name" data-type="string" data-help="First name of employee">Leslie</div>
+ <div class="text"> (</div>
+ <div class="data" data-tag="nic-name" data-xpath="/employees/employee/nic-name">"Les"</div>
+ <div class="text">)</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="last-name" data-xpath="/employees/employee/last-name" data-type="string" data-help="Last name of employee">Patterson </div>
+ <div class="data" data-tag="department" data-xpath="/employees/employee/department"> 341</div>
+ <div class="data" data-tag="percent-time" data-xpath="/employees/employee/percent-time" data-type="number" data-help="Percentage of full &amp; part time (%)"> 60</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="columns" data-xpath="/employees/employee/columns">55</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="first-name" data-xpath="/employees/employee/first-name" data-type="string" data-help="First name of employee">Ashley</div>
+ <div class="text"> (</div>
+ <div class="data" data-tag="nic-name" data-xpath="/employees/employee/nic-name">"Ash"</div>
+ <div class="text">)</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="last-name" data-xpath="/employees/employee/last-name" data-type="string" data-help="Last name of employee">Meter &amp; Smith </div>
+ <div class="data" data-tag="department" data-xpath="/employees/employee/department"> 1440</div>
+ <div class="data" data-tag="percent-time" data-xpath="/employees/employee/percent-time" data-type="number" data-help="Percentage of full &amp; part time (%)"> 40</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="columns" data-xpath="/employees/employee/columns">55</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="first-name" data-xpath="/employees/employee/first-name" data-type="string" data-help="First name of employee">0123456789</div>
+ <div class="text"> (</div>
+ <div class="data" data-tag="nic-name" data-xpath="/employees/employee/nic-name">"0123456789"</div>
+ <div class="text">)</div>
+ <div class="data" data-tag="last-name" data-xpath="/employees/employee/last-name" data-type="string" data-help="Last name of employee">01234567890123</div>
+ <div class="data" data-tag="department" data-xpath="/employees/employee/department"> 1440</div>
+ <div class="data" data-tag="percent-time" data-xpath="/employees/employee/percent-time" data-type="number" data-help="Percentage of full &amp; part time (%)"> 40</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="columns" data-xpath="/employees/employee/columns">55</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="first-name" data-xpath="/employees/employee/first-name" data-type="string" data-help="First name of employee">ახლა</div>
+ <div class="text"> (</div>
+ <div class="data" data-tag="nic-name" data-xpath="/employees/employee/nic-name">"გაიარო"</div>
+ <div class="text">)</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="last-name" data-xpath="/employees/employee/last-name" data-type="string" data-help="Last name of employee">საერთაშორისო </div>
+ <div class="data" data-tag="department" data-xpath="/employees/employee/department"> 123</div>
+ <div class="data" data-tag="percent-time" data-xpath="/employees/employee/percent-time" data-type="number" data-help="Percentage of full &amp; part time (%)"> 90</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="columns" data-xpath="/employees/employee/columns">55</div>
+</div>
diff --git a/0.4.6/tests/core/saved/test_07.HP.err b/0.4.6/tests/core/saved/test_07.HP.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_07.HP.err
diff --git a/0.4.6/tests/core/saved/test_07.HP.out b/0.4.6/tests/core/saved/test_07.HP.out
new file mode 100644
index 0000000..a5ce61d
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_07.HP.out
@@ -0,0 +1,107 @@
+<div class="line">
+ <div class="text">Οὐχὶ ταὐτὰ παρίσταταί μοι </div>
+ <div class="data" data-tag="v1">γιγνώσκειν</div>
+ <div class="text">, </div>
+ <div class="data" data-tag="v2">ὦ ἄνδρες ᾿Αθηναῖοι</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="columns">56</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="columns">2</div>
+</div>
+<div class="line">
+ <div class="text">გთხოვთ </div>
+ <div class="data" data-tag="v1">ახლავე გაიაროთ რეგისტრაცია</div>
+ <div class="text"> </div>
+ <div class="data" data-tag="v2">Unicode-ის მეათე საერთაშორისო</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="columns">63</div>
+</div>
+<div class="line">
+ <div class="title">First Name </div>
+ <div class="title">Last Name </div>
+ <div class="title">Department </div>
+ <div class="title">Time (%)</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="columns">59</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="first-name">Jim</div>
+ <div class="text"> (</div>
+ <div class="data" data-tag="nic-name">"რეგტ"</div>
+ <div class="text">)</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="last-name">გთხოვთ ახ </div>
+ <div class="data" data-tag="department"> 431</div>
+ <div class="data" data-tag="percent-time"> 90</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="columns">55</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="first-name">Terry</div>
+ <div class="text"> (</div>
+ <div class="data" data-tag="nic-name">"&lt;one"</div>
+ <div class="text">)</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="last-name">Οὐχὶ ταὐτὰ παρ</div>
+ <div class="data" data-tag="department"> 660</div>
+ <div class="data" data-tag="percent-time"> 90</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="columns">55</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="first-name">Leslie</div>
+ <div class="text"> (</div>
+ <div class="data" data-tag="nic-name">"Les"</div>
+ <div class="text">)</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="last-name">Patterson </div>
+ <div class="data" data-tag="department"> 341</div>
+ <div class="data" data-tag="percent-time"> 60</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="columns">55</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="first-name">Ashley</div>
+ <div class="text"> (</div>
+ <div class="data" data-tag="nic-name">"Ash"</div>
+ <div class="text">)</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="last-name">Meter &amp; Smith </div>
+ <div class="data" data-tag="department"> 1440</div>
+ <div class="data" data-tag="percent-time"> 40</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="columns">55</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="first-name">0123456789</div>
+ <div class="text"> (</div>
+ <div class="data" data-tag="nic-name">"0123456789"</div>
+ <div class="text">)</div>
+ <div class="data" data-tag="last-name">01234567890123</div>
+ <div class="data" data-tag="department"> 1440</div>
+ <div class="data" data-tag="percent-time"> 40</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="columns">55</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="first-name">ახლა</div>
+ <div class="text"> (</div>
+ <div class="data" data-tag="nic-name">"გაიარო"</div>
+ <div class="text">)</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="last-name">საერთაშორისო </div>
+ <div class="data" data-tag="department"> 123</div>
+ <div class="data" data-tag="percent-time"> 90</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="columns">55</div>
+</div>
diff --git a/0.4.6/tests/core/saved/test_07.J.err b/0.4.6/tests/core/saved/test_07.J.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_07.J.err
diff --git a/0.4.6/tests/core/saved/test_07.J.out b/0.4.6/tests/core/saved/test_07.J.out
new file mode 100644
index 0000000..8e9efae
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_07.J.out
@@ -0,0 +1,2 @@
+{"employees": {"test": [{"filename":"(null)"}],"v1":"γιγνώσκειν","v2":"ὦ ἄνδρες ᾿Αθηναῖοι","columns":28,"columns":2,"v1":"ახლავე გაიაროთ რეგისტრაცია","v2":"Unicode-ის მეათე საერთაშორისო","columns":55,"columns":0, "employee": [{"first-name":"Jim","nic-name":"\"რეგტ\"","last-name":"გთხოვთ ახ","department":431,"percent-time":90,"columns":23,"benefits":"full"}, {"first-name":"Terry","nic-name":"\"<one\"","last-name":"Οὐχὶ ταὐτὰ παρίσταταί μοι Jones","department":660,"percent-time":90,"columns":47,"benefits":"full"}, {"first-name":"Leslie","nic-name":"\"Les\"","last-name":"Patterson","department":341,"percent-time":60,"columns":25,"benefits":"full"}, {"first-name":"Ashley","nic-name":"\"Ash\"","last-name":"Meter & Smith","department":1440,"percent-time":40,"columns":30}, {"first-name":"0123456789","nic-name":"\"0123456789\"","last-name":"012345678901234567890","department":1440,"percent-time":40,"columns":49}, {"first-name":"ახლა","nic-name":"\"გაიარო\"","last-name":"საერთაშორისო","department":123,"percent-time":90,"columns":29,"benefits":"full"}]}
+}
diff --git a/0.4.6/tests/core/saved/test_07.JP.err b/0.4.6/tests/core/saved/test_07.JP.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_07.JP.err
diff --git a/0.4.6/tests/core/saved/test_07.JP.out b/0.4.6/tests/core/saved/test_07.JP.out
new file mode 100644
index 0000000..9c969f9
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_07.JP.out
@@ -0,0 +1,71 @@
+{
+ "employees": {
+ "test": [
+ {
+ "filename": "(null)"
+ }
+ ],
+ "v1": "γιγνώσκειν",
+ "v2": "ὦ ἄνδρες ᾿Αθηναῖοι",
+ "columns": 28,
+ "columns": 2,
+ "v1": "ახლავე გაიაროთ რეგისტრაცია",
+ "v2": "Unicode-ის მეათე საერთაშორისო",
+ "columns": 55,
+ "columns": 0,
+ "employee": [
+ {
+ "first-name": "Jim",
+ "nic-name": "\"რეგტ\"",
+ "last-name": "გთხოვთ ახ",
+ "department": 431,
+ "percent-time": 90,
+ "columns": 23,
+ "benefits": "full"
+ },
+ {
+ "first-name": "Terry",
+ "nic-name": "\"<one\"",
+ "last-name": "Οὐχὶ ταὐτὰ παρίσταταί μοι Jones",
+ "department": 660,
+ "percent-time": 90,
+ "columns": 47,
+ "benefits": "full"
+ },
+ {
+ "first-name": "Leslie",
+ "nic-name": "\"Les\"",
+ "last-name": "Patterson",
+ "department": 341,
+ "percent-time": 60,
+ "columns": 25,
+ "benefits": "full"
+ },
+ {
+ "first-name": "Ashley",
+ "nic-name": "\"Ash\"",
+ "last-name": "Meter & Smith",
+ "department": 1440,
+ "percent-time": 40,
+ "columns": 30
+ },
+ {
+ "first-name": "0123456789",
+ "nic-name": "\"0123456789\"",
+ "last-name": "012345678901234567890",
+ "department": 1440,
+ "percent-time": 40,
+ "columns": 49
+ },
+ {
+ "first-name": "ახლა",
+ "nic-name": "\"გაიარო\"",
+ "last-name": "საერთაშორისო",
+ "department": 123,
+ "percent-time": 90,
+ "columns": 29,
+ "benefits": "full"
+ }
+ ]
+ }
+}
diff --git a/0.4.6/tests/core/saved/test_07.T.err b/0.4.6/tests/core/saved/test_07.T.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_07.T.err
diff --git a/0.4.6/tests/core/saved/test_07.T.out b/0.4.6/tests/core/saved/test_07.T.out
new file mode 100644
index 0000000..5f4ff5c
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_07.T.out
@@ -0,0 +1,19 @@
+Οὐχὶ ταὐτὰ παρίσταταί μοι γιγνώσκειν, ὦ ἄνδρες ᾿Αθηναῖοι
+56
+2
+გთხოვთ ახლავე გაიაროთ რეგისტრაცია Unicode-ის მეათე საერთაშორისო
+63
+First Name Last Name Department Time (%)
+59
+Jim ("რეგტ") გთხოვთ ახ 431 90
+55
+Terry ("<one") Οὐχὶ ταὐτὰ παρ 660 90
+55
+Leslie ("Les") Patterson 341 60
+55
+Ashley ("Ash") Meter & Smith 1440 40
+55
+0123456789 ("0123456789")01234567890123 1440 40
+55
+ახლა ("გაიარო") საერთაშორისო 123 90
+55
diff --git a/0.4.6/tests/core/saved/test_07.X.err b/0.4.6/tests/core/saved/test_07.X.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_07.X.err
diff --git a/0.4.6/tests/core/saved/test_07.X.out b/0.4.6/tests/core/saved/test_07.X.out
new file mode 100644
index 0000000..bc8d22b
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_07.X.out
@@ -0,0 +1 @@
+<employees><test><filename>(null)</filename></test><v1>γιγνώσκειν</v1><v2>ὦ ἄνδρες ᾿Αθηναῖοι</v2><columns>28</columns><columns>2</columns><v1>ახლავე გაიაროთ რეგისტრაცია</v1><v2>Unicode-ის მეათე საერთაშორისო</v2><columns>55</columns><columns>0</columns><employee><first-name>Jim</first-name><nic-name>"რეგტ"</nic-name><last-name>გთხოვთ ახ</last-name><department>431</department><percent-time>90</percent-time><columns>23</columns><benefits full-time="honest &amp; for true">full</benefits></employee><employee><first-name>Terry</first-name><nic-name>"&lt;one"</nic-name><last-name>Οὐχὶ ταὐτὰ παρίσταταί μοι Jones</last-name><department>660</department><percent-time>90</percent-time><columns>47</columns><benefits full-time="honest &amp; for true">full</benefits></employee><employee><first-name>Leslie</first-name><nic-name>"Les"</nic-name><last-name>Patterson</last-name><department>341</department><percent-time>60</percent-time><columns>25</columns><benefits full-time="honest &amp; for true">full</benefits></employee><employee><first-name>Ashley</first-name><nic-name>"Ash"</nic-name><last-name>Meter &amp; Smith</last-name><department>1440</department><percent-time>40</percent-time><columns>30</columns></employee><employee><first-name>0123456789</first-name><nic-name>"0123456789"</nic-name><last-name>012345678901234567890</last-name><department>1440</department><percent-time>40</percent-time><columns>49</columns></employee><employee><first-name>ახლა</first-name><nic-name>"გაიარო"</nic-name><last-name>საერთაშორისო</last-name><department>123</department><percent-time>90</percent-time><columns>29</columns><benefits full-time="honest &amp; for true">full</benefits></employee></employees> \ No newline at end of file
diff --git a/0.4.6/tests/core/saved/test_07.XP.err b/0.4.6/tests/core/saved/test_07.XP.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_07.XP.err
diff --git a/0.4.6/tests/core/saved/test_07.XP.out b/0.4.6/tests/core/saved/test_07.XP.out
new file mode 100644
index 0000000..c13f838
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_07.XP.out
@@ -0,0 +1,65 @@
+<employees>
+ <test>
+ <filename>(null)</filename>
+ </test>
+ <v1>γιγνώσκειν</v1>
+ <v2>ὦ ἄνδρες ᾿Αθηναῖοι</v2>
+ <columns>28</columns>
+ <columns>2</columns>
+ <v1>ახლავე გაიაროთ რეგისტრაცია</v1>
+ <v2>Unicode-ის მეათე საერთაშორისო</v2>
+ <columns>55</columns>
+ <columns>0</columns>
+ <employee>
+ <first-name>Jim</first-name>
+ <nic-name>"რეგტ"</nic-name>
+ <last-name>გთხოვთ ახ</last-name>
+ <department>431</department>
+ <percent-time>90</percent-time>
+ <columns>23</columns>
+ <benefits full-time="honest &amp; for true">full</benefits>
+ </employee>
+ <employee>
+ <first-name>Terry</first-name>
+ <nic-name>"&lt;one"</nic-name>
+ <last-name>Οὐχὶ ταὐτὰ παρίσταταί μοι Jones</last-name>
+ <department>660</department>
+ <percent-time>90</percent-time>
+ <columns>47</columns>
+ <benefits full-time="honest &amp; for true">full</benefits>
+ </employee>
+ <employee>
+ <first-name>Leslie</first-name>
+ <nic-name>"Les"</nic-name>
+ <last-name>Patterson</last-name>
+ <department>341</department>
+ <percent-time>60</percent-time>
+ <columns>25</columns>
+ <benefits full-time="honest &amp; for true">full</benefits>
+ </employee>
+ <employee>
+ <first-name>Ashley</first-name>
+ <nic-name>"Ash"</nic-name>
+ <last-name>Meter &amp; Smith</last-name>
+ <department>1440</department>
+ <percent-time>40</percent-time>
+ <columns>30</columns>
+ </employee>
+ <employee>
+ <first-name>0123456789</first-name>
+ <nic-name>"0123456789"</nic-name>
+ <last-name>012345678901234567890</last-name>
+ <department>1440</department>
+ <percent-time>40</percent-time>
+ <columns>49</columns>
+ </employee>
+ <employee>
+ <first-name>ახლა</first-name>
+ <nic-name>"გაიარო"</nic-name>
+ <last-name>საერთაშორისო</last-name>
+ <department>123</department>
+ <percent-time>90</percent-time>
+ <columns>29</columns>
+ <benefits full-time="honest &amp; for true">full</benefits>
+ </employee>
+</employees>
diff --git a/0.4.6/tests/core/saved/test_08.E.err b/0.4.6/tests/core/saved/test_08.E.err
new file mode 100644
index 0000000..011858c
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_08.E.err
@@ -0,0 +1,18 @@
+test: close (xo_close_container) fails at marker 'm1'; not found 'data3'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm1'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm1'; not found 'top'
diff --git a/0.4.6/tests/core/saved/test_08.E.out b/0.4.6/tests/core/saved/test_08.E.out
new file mode 100644
index 0000000..c00f4b8
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_08.E.out
@@ -0,0 +1,186 @@
+op create: [] []
+op open_container: [top] []
+op open_container: [data] []
+op open_container: [contents] []
+op open_list: [item] []
+op open_instance: [item] []
+op string: [name] [gum]
+op content: [count] [1412]
+op close_instance: [item] []
+op open_instance: [item] []
+op string: [name] [rope]
+op content: [count] [85]
+op close_instance: [item] []
+op open_instance: [item] []
+op string: [name] [ladder]
+op content: [count] [0]
+op close_instance: [item] []
+op open_instance: [item] []
+op string: [name] [bolt]
+op content: [count] [4123]
+op close_instance: [item] []
+op open_instance: [item] []
+op string: [name] [water]
+op content: [count] [17]
+op close_instance: [item] []
+op close_list: [item] []
+op close_container: [contents] []
+op close_container: [data] []
+op open_container: [data2] []
+op open_container: [contents] []
+op open_list: [item] []
+op open_instance: [item] []
+op string: [name] [gum]
+op content: [count] [1412]
+op close_instance: [item] []
+op open_instance: [item] []
+op string: [name] [rope]
+op content: [count] [85]
+op close_instance: [item] []
+op open_instance: [item] []
+op string: [name] [ladder]
+op content: [count] [0]
+op close_instance: [item] []
+op open_instance: [item] []
+op string: [name] [bolt]
+op content: [count] [4123]
+op close_instance: [item] []
+op open_instance: [item] []
+op string: [name] [water]
+op content: [count] [17]
+op close_instance: [item] []
+op close_list: [item] []
+op close_container: [contents] []
+op close_container: [data2] []
+op open_container: [data3] []
+op open_container: [contents] []
+op open_list: [item] []
+op open_instance: [item] []
+op string: [name] [gum]
+op content: [count] [1412]
+op close_instance: [item] []
+op open_instance: [item] []
+op string: [name] [rope]
+op content: [count] [85]
+op close_instance: [item] []
+op open_instance: [item] []
+op string: [name] [ladder]
+op content: [count] [0]
+op close_instance: [item] []
+op open_instance: [item] []
+op string: [name] [bolt]
+op content: [count] [4123]
+op close_instance: [item] []
+op open_instance: [item] []
+op string: [name] [water]
+op content: [count] [17]
+op string: [test] [one]
+op close_instance: [item] []
+op close_list: [item] []
+op close_container: [contents] []
+op close_container: [data3] []
+op open_container: [data4] []
+op open_container: [contents] []
+op open_list: [item] []
+op open_instance: [item] []
+op string: [name] [gum]
+op content: [count] [1412]
+op open_list: [sub] []
+op open_instance: [sub] []
+op content: [name] [0]
+op content: [next] [1]
+op close_instance: [sub] []
+op open_instance: [sub] []
+op content: [name] [1]
+op content: [next] [2]
+op close_instance: [sub] []
+op open_instance: [sub] []
+op content: [name] [2]
+op content: [next] [3]
+op close_instance: [sub] []
+op close_list: [sub] []
+op content: [last] [3]
+op close_instance: [item] []
+op open_instance: [item] []
+op string: [name] [rope]
+op content: [count] [85]
+op open_list: [sub] []
+op open_instance: [sub] []
+op content: [name] [0]
+op content: [next] [1]
+op close_instance: [sub] []
+op open_instance: [sub] []
+op content: [name] [1]
+op content: [next] [2]
+op close_instance: [sub] []
+op open_instance: [sub] []
+op content: [name] [2]
+op content: [next] [3]
+op close_instance: [sub] []
+op close_list: [sub] []
+op content: [last] [3]
+op close_instance: [item] []
+op open_instance: [item] []
+op string: [name] [ladder]
+op content: [count] [0]
+op open_list: [sub] []
+op open_instance: [sub] []
+op content: [name] [0]
+op content: [next] [1]
+op close_instance: [sub] []
+op open_instance: [sub] []
+op content: [name] [1]
+op content: [next] [2]
+op close_instance: [sub] []
+op open_instance: [sub] []
+op content: [name] [2]
+op content: [next] [3]
+op close_instance: [sub] []
+op close_list: [sub] []
+op content: [last] [3]
+op close_instance: [item] []
+op open_instance: [item] []
+op string: [name] [bolt]
+op content: [count] [4123]
+op open_list: [sub] []
+op open_instance: [sub] []
+op content: [name] [0]
+op content: [next] [1]
+op close_instance: [sub] []
+op open_instance: [sub] []
+op content: [name] [1]
+op content: [next] [2]
+op close_instance: [sub] []
+op open_instance: [sub] []
+op content: [name] [2]
+op content: [next] [3]
+op close_instance: [sub] []
+op close_list: [sub] []
+op content: [last] [3]
+op close_instance: [item] []
+op open_instance: [item] []
+op string: [name] [water]
+op content: [count] [17]
+op open_list: [sub] []
+op open_instance: [sub] []
+op content: [name] [0]
+op content: [next] [1]
+op close_instance: [sub] []
+op open_instance: [sub] []
+op content: [name] [1]
+op content: [next] [2]
+op close_instance: [sub] []
+op open_instance: [sub] []
+op content: [name] [2]
+op content: [next] [3]
+op close_instance: [sub] []
+op close_list: [sub] []
+op content: [last] [3]
+op string: [test] [one]
+op close_instance: [item] []
+op close_list: [item] []
+op close_container: [contents] []
+op close_container: [data4] []
+op close_container: [top] []
+op finish: [] []
+op flush: [] []
diff --git a/0.4.6/tests/core/saved/test_08.H.err b/0.4.6/tests/core/saved/test_08.H.err
new file mode 100644
index 0000000..011858c
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_08.H.err
@@ -0,0 +1,18 @@
+test: close (xo_close_container) fails at marker 'm1'; not found 'data3'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm1'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm1'; not found 'top'
diff --git a/0.4.6/tests/core/saved/test_08.H.out b/0.4.6/tests/core/saved/test_08.H.out
new file mode 100644
index 0000000..81f12d8
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_08.H.out
@@ -0,0 +1 @@
+<div class="line"><div class="title">Item </div><div class="title"> Count</div></div><div class="line"><div class="data" data-tag="name" data-key="key">gum </div><div class="data" data-tag="count"> 1412</div></div><div class="line"><div class="data" data-tag="name" data-key="key">rope </div><div class="data" data-tag="count"> 85</div></div><div class="line"><div class="data" data-tag="name" data-key="key">ladder </div><div class="data" data-tag="count"> 0</div></div><div class="line"><div class="data" data-tag="name" data-key="key">bolt </div><div class="data" data-tag="count"> 4123</div></div><div class="line"><div class="data" data-tag="name" data-key="key">water </div><div class="data" data-tag="count"> 17</div></div><div class="line"></div><div class="line"></div><div class="line"><div class="title">Item </div><div class="title"> Count</div></div><div class="line"><div class="data" data-tag="name" data-key="key">gum </div><div class="data" data-tag="count"> 1412</div></div><div class="line"><div class="data" data-tag="name" data-key="key">rope </div><div class="data" data-tag="count"> 85</div></div><div class="line"><div class="data" data-tag="name" data-key="key">ladder </div><div class="data" data-tag="count"> 0</div></div><div class="line"><div class="data" data-tag="name" data-key="key">bolt </div><div class="data" data-tag="count"> 4123</div></div><div class="line"><div class="data" data-tag="name" data-key="key">water </div><div class="data" data-tag="count"> 17</div></div><div class="line"></div><div class="line"></div><div class="line"><div class="title">Item </div><div class="title"> Count</div></div><div class="line"><div class="data" data-tag="name" data-key="key">gum </div><div class="data" data-tag="count"> 1412</div></div><div class="line"><div class="data" data-tag="name" data-key="key">rope </div><div class="data" data-tag="count"> 85</div></div><div class="line"><div class="data" data-tag="name" data-key="key">ladder </div><div class="data" data-tag="count"> 0</div></div><div class="line"><div class="data" data-tag="name" data-key="key">bolt </div><div class="data" data-tag="count"> 4123</div></div><div class="line"><div class="data" data-tag="name" data-key="key">water </div><div class="data" data-tag="count"> 17</div></div><div class="line"><div class="data" data-tag="test">one</div></div><div class="line"></div><div class="line"><div class="title">Item </div><div class="title"> Count</div></div><div class="line"><div class="data" data-tag="name" data-key="key">gum </div><div class="data" data-tag="count"> 1412</div></div><div class="line"><div class="label">Name</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="name">0</div><div class="text"> + 1 = </div><div class="data" data-tag="next">1</div></div><div class="line"><div class="label">Name</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="name">1</div><div class="text"> + 1 = </div><div class="data" data-tag="next">2</div></div><div class="line"><div class="label">Name</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="name">2</div><div class="text"> + 1 = </div><div class="data" data-tag="next">3</div></div><div class="line"><div class="label">Last</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="last">3</div></div><div class="line"><div class="data" data-tag="name" data-key="key">rope </div><div class="data" data-tag="count"> 85</div></div><div class="line"><div class="label">Name</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="name">0</div><div class="text"> + 1 = </div><div class="data" data-tag="next">1</div></div><div class="line"><div class="label">Name</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="name">1</div><div class="text"> + 1 = </div><div class="data" data-tag="next">2</div></div><div class="line"><div class="label">Name</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="name">2</div><div class="text"> + 1 = </div><div class="data" data-tag="next">3</div></div><div class="line"><div class="label">Last</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="last">3</div></div><div class="line"><div class="data" data-tag="name" data-key="key">ladder </div><div class="data" data-tag="count"> 0</div></div><div class="line"><div class="label">Name</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="name">0</div><div class="text"> + 1 = </div><div class="data" data-tag="next">1</div></div><div class="line"><div class="label">Name</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="name">1</div><div class="text"> + 1 = </div><div class="data" data-tag="next">2</div></div><div class="line"><div class="label">Name</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="name">2</div><div class="text"> + 1 = </div><div class="data" data-tag="next">3</div></div><div class="line"><div class="label">Last</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="last">3</div></div><div class="line"><div class="data" data-tag="name" data-key="key">bolt </div><div class="data" data-tag="count"> 4123</div></div><div class="line"><div class="label">Name</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="name">0</div><div class="text"> + 1 = </div><div class="data" data-tag="next">1</div></div><div class="line"><div class="label">Name</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="name">1</div><div class="text"> + 1 = </div><div class="data" data-tag="next">2</div></div><div class="line"><div class="label">Name</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="name">2</div><div class="text"> + 1 = </div><div class="data" data-tag="next">3</div></div><div class="line"><div class="label">Last</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="last">3</div></div><div class="line"><div class="data" data-tag="name" data-key="key">water </div><div class="data" data-tag="count"> 17</div></div><div class="line"><div class="label">Name</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="name">0</div><div class="text"> + 1 = </div><div class="data" data-tag="next">1</div></div><div class="line"><div class="label">Name</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="name">1</div><div class="text"> + 1 = </div><div class="data" data-tag="next">2</div></div><div class="line"><div class="label">Name</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="name">2</div><div class="text"> + 1 = </div><div class="data" data-tag="next">3</div></div><div class="line"><div class="label">Last</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="last">3</div></div><div class="line"><div class="data" data-tag="test">one</div></div><div class="line"></div> \ No newline at end of file
diff --git a/0.4.6/tests/core/saved/test_08.HIPx.err b/0.4.6/tests/core/saved/test_08.HIPx.err
new file mode 100644
index 0000000..011858c
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_08.HIPx.err
@@ -0,0 +1,18 @@
+test: close (xo_close_container) fails at marker 'm1'; not found 'data3'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm1'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm1'; not found 'top'
diff --git a/0.4.6/tests/core/saved/test_08.HIPx.out b/0.4.6/tests/core/saved/test_08.HIPx.out
new file mode 100644
index 0000000..2263347
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_08.HIPx.out
@@ -0,0 +1,264 @@
+<div class="line">
+ <div class="title">Item </div>
+ <div class="title"> Count</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data/contents/item/name" data-key="key">gum </div>
+ <div class="data" data-tag="count" data-xpath="/top/data/contents/item[name = 'gum']/count"> 1412</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data/contents/item/name" data-key="key">rope </div>
+ <div class="data" data-tag="count" data-xpath="/top/data/contents/item[name = 'rope']/count"> 85</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data/contents/item/name" data-key="key">ladder </div>
+ <div class="data" data-tag="count" data-xpath="/top/data/contents/item[name = 'ladder']/count"> 0</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data/contents/item/name" data-key="key">bolt </div>
+ <div class="data" data-tag="count" data-xpath="/top/data/contents/item[name = 'bolt']/count"> 4123</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data/contents/item/name" data-key="key">water </div>
+ <div class="data" data-tag="count" data-xpath="/top/data/contents/item[name = 'water']/count"> 17</div>
+</div>
+<div class="line">
+</div>
+<div class="line">
+</div>
+<div class="line">
+ <div class="title">Item </div>
+ <div class="title"> Count</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data2/contents/item/name" data-key="key">gum </div>
+ <div class="data" data-tag="count" data-xpath="/top/data2/contents/item[name = 'gum']/count"> 1412</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data2/contents/item/name" data-key="key">rope </div>
+ <div class="data" data-tag="count" data-xpath="/top/data2/contents/item[name = 'rope']/count"> 85</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data2/contents/item/name" data-key="key">ladder </div>
+ <div class="data" data-tag="count" data-xpath="/top/data2/contents/item[name = 'ladder']/count"> 0</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data2/contents/item/name" data-key="key">bolt </div>
+ <div class="data" data-tag="count" data-xpath="/top/data2/contents/item[name = 'bolt']/count"> 4123</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data2/contents/item/name" data-key="key">water </div>
+ <div class="data" data-tag="count" data-xpath="/top/data2/contents/item[name = 'water']/count"> 17</div>
+</div>
+<div class="line">
+</div>
+<div class="line">
+</div>
+<div class="line">
+ <div class="title">Item </div>
+ <div class="title"> Count</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data3/m1/contents/item/name" data-key="key">gum </div>
+ <div class="data" data-tag="count" data-xpath="/top/data3/m1/contents/item[name = 'gum']/count"> 1412</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data3/m1/contents/item/name" data-key="key">rope </div>
+ <div class="data" data-tag="count" data-xpath="/top/data3/m1/contents/item[name = 'rope']/count"> 85</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data3/m1/contents/item/name" data-key="key">ladder </div>
+ <div class="data" data-tag="count" data-xpath="/top/data3/m1/contents/item[name = 'ladder']/count"> 0</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data3/m1/contents/item/name" data-key="key">bolt </div>
+ <div class="data" data-tag="count" data-xpath="/top/data3/m1/contents/item[name = 'bolt']/count"> 4123</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data3/m1/contents/item/name" data-key="key">water </div>
+ <div class="data" data-tag="count" data-xpath="/top/data3/m1/contents/item[name = 'water']/count"> 17</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="test" data-xpath="/top/data3/m1/contents/item[name = 'water']/test">one</div>
+</div>
+<div class="line">
+</div>
+<div class="line">
+ <div class="title">Item </div>
+ <div class="title"> Count</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data4/m1/contents/item/name" data-key="key">gum </div>
+ <div class="data" data-tag="count" data-xpath="/top/data4/m1/contents/item[name = 'gum']/count"> 1412</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name" data-xpath="/top/data4/m1/contents/item[name = 'gum']/m2/sub/name">0</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next" data-xpath="/top/data4/m1/contents/item[name = 'gum']/m2/sub/next">1</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name" data-xpath="/top/data4/m1/contents/item[name = 'gum']/m2/sub/name">1</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next" data-xpath="/top/data4/m1/contents/item[name = 'gum']/m2/sub/next">2</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name" data-xpath="/top/data4/m1/contents/item[name = 'gum']/m2/sub/name">2</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next" data-xpath="/top/data4/m1/contents/item[name = 'gum']/m2/sub/next">3</div>
+</div>
+<div class="line">
+ <div class="label">Last</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="last" data-xpath="/top/data4/m1/contents/item[name = 'gum']/last">3</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data4/m1/contents/item/name" data-key="key">rope </div>
+ <div class="data" data-tag="count" data-xpath="/top/data4/m1/contents/item[name = 'rope']/count"> 85</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name" data-xpath="/top/data4/m1/contents/item[name = 'rope']/m2/sub/name">0</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next" data-xpath="/top/data4/m1/contents/item[name = 'rope']/m2/sub/next">1</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name" data-xpath="/top/data4/m1/contents/item[name = 'rope']/m2/sub/name">1</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next" data-xpath="/top/data4/m1/contents/item[name = 'rope']/m2/sub/next">2</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name" data-xpath="/top/data4/m1/contents/item[name = 'rope']/m2/sub/name">2</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next" data-xpath="/top/data4/m1/contents/item[name = 'rope']/m2/sub/next">3</div>
+</div>
+<div class="line">
+ <div class="label">Last</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="last" data-xpath="/top/data4/m1/contents/item[name = 'rope']/last">3</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data4/m1/contents/item/name" data-key="key">ladder </div>
+ <div class="data" data-tag="count" data-xpath="/top/data4/m1/contents/item[name = 'ladder']/count"> 0</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name" data-xpath="/top/data4/m1/contents/item[name = 'ladder']/m2/sub/name">0</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next" data-xpath="/top/data4/m1/contents/item[name = 'ladder']/m2/sub/next">1</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name" data-xpath="/top/data4/m1/contents/item[name = 'ladder']/m2/sub/name">1</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next" data-xpath="/top/data4/m1/contents/item[name = 'ladder']/m2/sub/next">2</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name" data-xpath="/top/data4/m1/contents/item[name = 'ladder']/m2/sub/name">2</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next" data-xpath="/top/data4/m1/contents/item[name = 'ladder']/m2/sub/next">3</div>
+</div>
+<div class="line">
+ <div class="label">Last</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="last" data-xpath="/top/data4/m1/contents/item[name = 'ladder']/last">3</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data4/m1/contents/item/name" data-key="key">bolt </div>
+ <div class="data" data-tag="count" data-xpath="/top/data4/m1/contents/item[name = 'bolt']/count"> 4123</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name" data-xpath="/top/data4/m1/contents/item[name = 'bolt']/m2/sub/name">0</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next" data-xpath="/top/data4/m1/contents/item[name = 'bolt']/m2/sub/next">1</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name" data-xpath="/top/data4/m1/contents/item[name = 'bolt']/m2/sub/name">1</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next" data-xpath="/top/data4/m1/contents/item[name = 'bolt']/m2/sub/next">2</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name" data-xpath="/top/data4/m1/contents/item[name = 'bolt']/m2/sub/name">2</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next" data-xpath="/top/data4/m1/contents/item[name = 'bolt']/m2/sub/next">3</div>
+</div>
+<div class="line">
+ <div class="label">Last</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="last" data-xpath="/top/data4/m1/contents/item[name = 'bolt']/last">3</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data4/m1/contents/item/name" data-key="key">water </div>
+ <div class="data" data-tag="count" data-xpath="/top/data4/m1/contents/item[name = 'water']/count"> 17</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name" data-xpath="/top/data4/m1/contents/item[name = 'water']/m2/sub/name">0</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next" data-xpath="/top/data4/m1/contents/item[name = 'water']/m2/sub/next">1</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name" data-xpath="/top/data4/m1/contents/item[name = 'water']/m2/sub/name">1</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next" data-xpath="/top/data4/m1/contents/item[name = 'water']/m2/sub/next">2</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name" data-xpath="/top/data4/m1/contents/item[name = 'water']/m2/sub/name">2</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next" data-xpath="/top/data4/m1/contents/item[name = 'water']/m2/sub/next">3</div>
+</div>
+<div class="line">
+ <div class="label">Last</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="last" data-xpath="/top/data4/m1/contents/item[name = 'water']/last">3</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="test" data-xpath="/top/data4/m1/contents/item[name = 'water']/test">one</div>
+</div>
+<div class="line">
+</div>
diff --git a/0.4.6/tests/core/saved/test_08.HP.err b/0.4.6/tests/core/saved/test_08.HP.err
new file mode 100644
index 0000000..011858c
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_08.HP.err
@@ -0,0 +1,18 @@
+test: close (xo_close_container) fails at marker 'm1'; not found 'data3'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm1'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm1'; not found 'top'
diff --git a/0.4.6/tests/core/saved/test_08.HP.out b/0.4.6/tests/core/saved/test_08.HP.out
new file mode 100644
index 0000000..3524f5e
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_08.HP.out
@@ -0,0 +1,264 @@
+<div class="line">
+ <div class="title">Item </div>
+ <div class="title"> Count</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">gum </div>
+ <div class="data" data-tag="count"> 1412</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">rope </div>
+ <div class="data" data-tag="count"> 85</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">ladder </div>
+ <div class="data" data-tag="count"> 0</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">bolt </div>
+ <div class="data" data-tag="count"> 4123</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">water </div>
+ <div class="data" data-tag="count"> 17</div>
+</div>
+<div class="line">
+</div>
+<div class="line">
+</div>
+<div class="line">
+ <div class="title">Item </div>
+ <div class="title"> Count</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">gum </div>
+ <div class="data" data-tag="count"> 1412</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">rope </div>
+ <div class="data" data-tag="count"> 85</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">ladder </div>
+ <div class="data" data-tag="count"> 0</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">bolt </div>
+ <div class="data" data-tag="count"> 4123</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">water </div>
+ <div class="data" data-tag="count"> 17</div>
+</div>
+<div class="line">
+</div>
+<div class="line">
+</div>
+<div class="line">
+ <div class="title">Item </div>
+ <div class="title"> Count</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">gum </div>
+ <div class="data" data-tag="count"> 1412</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">rope </div>
+ <div class="data" data-tag="count"> 85</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">ladder </div>
+ <div class="data" data-tag="count"> 0</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">bolt </div>
+ <div class="data" data-tag="count"> 4123</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">water </div>
+ <div class="data" data-tag="count"> 17</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="test">one</div>
+</div>
+<div class="line">
+</div>
+<div class="line">
+ <div class="title">Item </div>
+ <div class="title"> Count</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">gum </div>
+ <div class="data" data-tag="count"> 1412</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name">0</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next">1</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name">1</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next">2</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name">2</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next">3</div>
+</div>
+<div class="line">
+ <div class="label">Last</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="last">3</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">rope </div>
+ <div class="data" data-tag="count"> 85</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name">0</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next">1</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name">1</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next">2</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name">2</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next">3</div>
+</div>
+<div class="line">
+ <div class="label">Last</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="last">3</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">ladder </div>
+ <div class="data" data-tag="count"> 0</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name">0</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next">1</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name">1</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next">2</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name">2</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next">3</div>
+</div>
+<div class="line">
+ <div class="label">Last</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="last">3</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">bolt </div>
+ <div class="data" data-tag="count"> 4123</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name">0</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next">1</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name">1</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next">2</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name">2</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next">3</div>
+</div>
+<div class="line">
+ <div class="label">Last</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="last">3</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">water </div>
+ <div class="data" data-tag="count"> 17</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name">0</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next">1</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name">1</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next">2</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name">2</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next">3</div>
+</div>
+<div class="line">
+ <div class="label">Last</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="last">3</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="test">one</div>
+</div>
+<div class="line">
+</div>
diff --git a/0.4.6/tests/core/saved/test_08.J.err b/0.4.6/tests/core/saved/test_08.J.err
new file mode 100644
index 0000000..011858c
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_08.J.err
@@ -0,0 +1,18 @@
+test: close (xo_close_container) fails at marker 'm1'; not found 'data3'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm1'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm1'; not found 'top'
diff --git a/0.4.6/tests/core/saved/test_08.J.out b/0.4.6/tests/core/saved/test_08.J.out
new file mode 100644
index 0000000..9d89755
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_08.J.out
@@ -0,0 +1,2 @@
+{"top": {"data": {"contents": {"item": [{"name":"gum","count":1412}, {"name":"rope","count":85}, {"name":"ladder","count":0}, {"name":"bolt","count":4123}, {"name":"water","count":17}]}}, "data2": {"contents": {"item": [{"name":"gum","count":1412}, {"name":"rope","count":85}, {"name":"ladder","count":0}, {"name":"bolt","count":4123}, {"name":"water","count":17}]}}, "data3": {"contents": {"item": [{"name":"gum","count":1412}, {"name":"rope","count":85}, {"name":"ladder","count":0}, {"name":"bolt","count":4123}, {"name":"water","count":17,"test":"one"}]}}, "data4": {"contents": {"item": [{"name":"gum","count":1412, "sub": [{"name":0,"next":1}, {"name":1,"next":2}, {"name":2,"next":3}],"last":3}, {"name":"rope","count":85, "sub": [{"name":0,"next":1}, {"name":1,"next":2}, {"name":2,"next":3}],"last":3}, {"name":"ladder","count":0, "sub": [{"name":0,"next":1}, {"name":1,"next":2}, {"name":2,"next":3}],"last":3}, {"name":"bolt","count":4123, "sub": [{"name":0,"next":1}, {"name":1,"next":2}, {"name":2,"next":3}],"last":3}, {"name":"water","count":17, "sub": [{"name":0,"next":1}, {"name":1,"next":2}, {"name":2,"next":3}],"last":3,"test":"one"}]}}}
+}
diff --git a/0.4.6/tests/core/saved/test_08.JP.err b/0.4.6/tests/core/saved/test_08.JP.err
new file mode 100644
index 0000000..011858c
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_08.JP.err
@@ -0,0 +1,18 @@
+test: close (xo_close_container) fails at marker 'm1'; not found 'data3'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm1'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm1'; not found 'top'
diff --git a/0.4.6/tests/core/saved/test_08.JP.out b/0.4.6/tests/core/saved/test_08.JP.out
new file mode 100644
index 0000000..46f3de5
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_08.JP.out
@@ -0,0 +1,185 @@
+{
+ "top": {
+ "data": {
+ "contents": {
+ "item": [
+ {
+ "name": "gum",
+ "count": 1412
+ },
+ {
+ "name": "rope",
+ "count": 85
+ },
+ {
+ "name": "ladder",
+ "count": 0
+ },
+ {
+ "name": "bolt",
+ "count": 4123
+ },
+ {
+ "name": "water",
+ "count": 17
+ }
+ ]
+ }
+ },
+ "data2": {
+ "contents": {
+ "item": [
+ {
+ "name": "gum",
+ "count": 1412
+ },
+ {
+ "name": "rope",
+ "count": 85
+ },
+ {
+ "name": "ladder",
+ "count": 0
+ },
+ {
+ "name": "bolt",
+ "count": 4123
+ },
+ {
+ "name": "water",
+ "count": 17
+ }
+ ]
+ }
+ },
+ "data3": {
+ "contents": {
+ "item": [
+ {
+ "name": "gum",
+ "count": 1412
+ },
+ {
+ "name": "rope",
+ "count": 85
+ },
+ {
+ "name": "ladder",
+ "count": 0
+ },
+ {
+ "name": "bolt",
+ "count": 4123
+ },
+ {
+ "name": "water",
+ "count": 17,
+ "test": "one"
+ }
+ ]
+ }
+ },
+ "data4": {
+ "contents": {
+ "item": [
+ {
+ "name": "gum",
+ "count": 1412,
+ "sub": [
+ {
+ "name": 0,
+ "next": 1
+ },
+ {
+ "name": 1,
+ "next": 2
+ },
+ {
+ "name": 2,
+ "next": 3
+ }
+ ],
+ "last": 3
+ },
+ {
+ "name": "rope",
+ "count": 85,
+ "sub": [
+ {
+ "name": 0,
+ "next": 1
+ },
+ {
+ "name": 1,
+ "next": 2
+ },
+ {
+ "name": 2,
+ "next": 3
+ }
+ ],
+ "last": 3
+ },
+ {
+ "name": "ladder",
+ "count": 0,
+ "sub": [
+ {
+ "name": 0,
+ "next": 1
+ },
+ {
+ "name": 1,
+ "next": 2
+ },
+ {
+ "name": 2,
+ "next": 3
+ }
+ ],
+ "last": 3
+ },
+ {
+ "name": "bolt",
+ "count": 4123,
+ "sub": [
+ {
+ "name": 0,
+ "next": 1
+ },
+ {
+ "name": 1,
+ "next": 2
+ },
+ {
+ "name": 2,
+ "next": 3
+ }
+ ],
+ "last": 3
+ },
+ {
+ "name": "water",
+ "count": 17,
+ "sub": [
+ {
+ "name": 0,
+ "next": 1
+ },
+ {
+ "name": 1,
+ "next": 2
+ },
+ {
+ "name": 2,
+ "next": 3
+ }
+ ],
+ "last": 3,
+ "test": "one"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/0.4.6/tests/core/saved/test_08.T.err b/0.4.6/tests/core/saved/test_08.T.err
new file mode 100644
index 0000000..011858c
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_08.T.err
@@ -0,0 +1,18 @@
+test: close (xo_close_container) fails at marker 'm1'; not found 'data3'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm1'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm1'; not found 'top'
diff --git a/0.4.6/tests/core/saved/test_08.T.out b/0.4.6/tests/core/saved/test_08.T.out
new file mode 100644
index 0000000..8923b93
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_08.T.out
@@ -0,0 +1,52 @@
+Item Count
+gum 1412
+rope 85
+ladder 0
+bolt 4123
+water 17
+
+
+Item Count
+gum 1412
+rope 85
+ladder 0
+bolt 4123
+water 17
+
+
+Item Count
+gum 1412
+rope 85
+ladder 0
+bolt 4123
+water 17
+one
+
+Item Count
+gum 1412
+Name: 0 + 1 = 1
+Name: 1 + 1 = 2
+Name: 2 + 1 = 3
+Last: 3
+rope 85
+Name: 0 + 1 = 1
+Name: 1 + 1 = 2
+Name: 2 + 1 = 3
+Last: 3
+ladder 0
+Name: 0 + 1 = 1
+Name: 1 + 1 = 2
+Name: 2 + 1 = 3
+Last: 3
+bolt 4123
+Name: 0 + 1 = 1
+Name: 1 + 1 = 2
+Name: 2 + 1 = 3
+Last: 3
+water 17
+Name: 0 + 1 = 1
+Name: 1 + 1 = 2
+Name: 2 + 1 = 3
+Last: 3
+one
+
diff --git a/0.4.6/tests/core/saved/test_08.X.err b/0.4.6/tests/core/saved/test_08.X.err
new file mode 100644
index 0000000..011858c
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_08.X.err
@@ -0,0 +1,18 @@
+test: close (xo_close_container) fails at marker 'm1'; not found 'data3'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm1'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm1'; not found 'top'
diff --git a/0.4.6/tests/core/saved/test_08.X.out b/0.4.6/tests/core/saved/test_08.X.out
new file mode 100644
index 0000000..b8ee392
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_08.X.out
@@ -0,0 +1 @@
+<top><data><contents><item><name key="key">gum</name><count>1412</count></item><item><name key="key">rope</name><count>85</count></item><item><name key="key">ladder</name><count>0</count></item><item><name key="key">bolt</name><count>4123</count></item><item><name key="key">water</name><count>17</count></item></contents></data><data2><contents><item><name key="key">gum</name><count>1412</count></item><item><name key="key">rope</name><count>85</count></item><item><name key="key">ladder</name><count>0</count></item><item><name key="key">bolt</name><count>4123</count></item><item><name key="key">water</name><count>17</count></item></contents></data2><data3><contents><item><name key="key">gum</name><count>1412</count></item><item><name key="key">rope</name><count>85</count></item><item><name key="key">ladder</name><count>0</count></item><item><name key="key">bolt</name><count>4123</count></item><item><name key="key">water</name><count>17</count><test>one</test></item></contents></data3><data4><contents><item><name key="key">gum</name><count>1412</count><sub><name>0</name><next>1</next></sub><sub><name>1</name><next>2</next></sub><sub><name>2</name><next>3</next></sub><last>3</last></item><item><name key="key">rope</name><count>85</count><sub><name>0</name><next>1</next></sub><sub><name>1</name><next>2</next></sub><sub><name>2</name><next>3</next></sub><last>3</last></item><item><name key="key">ladder</name><count>0</count><sub><name>0</name><next>1</next></sub><sub><name>1</name><next>2</next></sub><sub><name>2</name><next>3</next></sub><last>3</last></item><item><name key="key">bolt</name><count>4123</count><sub><name>0</name><next>1</next></sub><sub><name>1</name><next>2</next></sub><sub><name>2</name><next>3</next></sub><last>3</last></item><item><name key="key">water</name><count>17</count><sub><name>0</name><next>1</next></sub><sub><name>1</name><next>2</next></sub><sub><name>2</name><next>3</next></sub><last>3</last><test>one</test></item></contents></data4></top> \ No newline at end of file
diff --git a/0.4.6/tests/core/saved/test_08.XP.err b/0.4.6/tests/core/saved/test_08.XP.err
new file mode 100644
index 0000000..011858c
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_08.XP.err
@@ -0,0 +1,18 @@
+test: close (xo_close_container) fails at marker 'm1'; not found 'data3'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm1'; not found 'data4'
+test: close (xo_close_container) fails at marker 'm1'; not found 'top'
diff --git a/0.4.6/tests/core/saved/test_08.XP.out b/0.4.6/tests/core/saved/test_08.XP.out
new file mode 100644
index 0000000..1d9b70f
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_08.XP.out
@@ -0,0 +1,165 @@
+<top>
+ <data>
+ <contents>
+ <item>
+ <name key="key">gum</name>
+ <count>1412</count>
+ </item>
+ <item>
+ <name key="key">rope</name>
+ <count>85</count>
+ </item>
+ <item>
+ <name key="key">ladder</name>
+ <count>0</count>
+ </item>
+ <item>
+ <name key="key">bolt</name>
+ <count>4123</count>
+ </item>
+ <item>
+ <name key="key">water</name>
+ <count>17</count>
+ </item>
+ </contents>
+ </data>
+ <data2>
+ <contents>
+ <item>
+ <name key="key">gum</name>
+ <count>1412</count>
+ </item>
+ <item>
+ <name key="key">rope</name>
+ <count>85</count>
+ </item>
+ <item>
+ <name key="key">ladder</name>
+ <count>0</count>
+ </item>
+ <item>
+ <name key="key">bolt</name>
+ <count>4123</count>
+ </item>
+ <item>
+ <name key="key">water</name>
+ <count>17</count>
+ </item>
+ </contents>
+ </data2>
+ <data3>
+ <contents>
+ <item>
+ <name key="key">gum</name>
+ <count>1412</count>
+ </item>
+ <item>
+ <name key="key">rope</name>
+ <count>85</count>
+ </item>
+ <item>
+ <name key="key">ladder</name>
+ <count>0</count>
+ </item>
+ <item>
+ <name key="key">bolt</name>
+ <count>4123</count>
+ </item>
+ <item>
+ <name key="key">water</name>
+ <count>17</count>
+ <test>one</test>
+ </item>
+ </contents>
+ </data3>
+ <data4>
+ <contents>
+ <item>
+ <name key="key">gum</name>
+ <count>1412</count>
+ <sub>
+ <name>0</name>
+ <next>1</next>
+ </sub>
+ <sub>
+ <name>1</name>
+ <next>2</next>
+ </sub>
+ <sub>
+ <name>2</name>
+ <next>3</next>
+ </sub>
+ <last>3</last>
+ </item>
+ <item>
+ <name key="key">rope</name>
+ <count>85</count>
+ <sub>
+ <name>0</name>
+ <next>1</next>
+ </sub>
+ <sub>
+ <name>1</name>
+ <next>2</next>
+ </sub>
+ <sub>
+ <name>2</name>
+ <next>3</next>
+ </sub>
+ <last>3</last>
+ </item>
+ <item>
+ <name key="key">ladder</name>
+ <count>0</count>
+ <sub>
+ <name>0</name>
+ <next>1</next>
+ </sub>
+ <sub>
+ <name>1</name>
+ <next>2</next>
+ </sub>
+ <sub>
+ <name>2</name>
+ <next>3</next>
+ </sub>
+ <last>3</last>
+ </item>
+ <item>
+ <name key="key">bolt</name>
+ <count>4123</count>
+ <sub>
+ <name>0</name>
+ <next>1</next>
+ </sub>
+ <sub>
+ <name>1</name>
+ <next>2</next>
+ </sub>
+ <sub>
+ <name>2</name>
+ <next>3</next>
+ </sub>
+ <last>3</last>
+ </item>
+ <item>
+ <name key="key">water</name>
+ <count>17</count>
+ <sub>
+ <name>0</name>
+ <next>1</next>
+ </sub>
+ <sub>
+ <name>1</name>
+ <next>2</next>
+ </sub>
+ <sub>
+ <name>2</name>
+ <next>3</next>
+ </sub>
+ <last>3</last>
+ <test>one</test>
+ </item>
+ </contents>
+ </data4>
+</top>
diff --git a/0.4.6/tests/core/saved/test_09.E.err b/0.4.6/tests/core/saved/test_09.E.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_09.E.err
diff --git a/0.4.6/tests/core/saved/test_09.E.out b/0.4.6/tests/core/saved/test_09.E.out
new file mode 100644
index 0000000..bb808d5
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_09.E.out
@@ -0,0 +1,40 @@
+op create: [] []
+op open_container: [top] []
+op open_container: [data] []
+op open_container: [contents] []
+op open_leaf_list: [name] []
+op string: [name] [gum]
+op string: [name] [rope]
+op string: [name] [ladder]
+op string: [name] [bolt]
+op string: [name] [water]
+op close_leaf_list: [name] []
+op close_container: [contents] []
+op open_container: [contents] []
+op open_leaf_list: [item] []
+op string: [item] [gum]
+op string: [item] [rope]
+op string: [item] [ladder]
+op string: [item] [bolt]
+op string: [item] [water]
+op close_leaf_list: [item] []
+op close_container: [contents] []
+op open_container: [contents] []
+op open_list: [item] []
+op string: [item] [gum]
+op string: [item] [rope]
+op string: [item] [ladder]
+op string: [item] [bolt]
+op string: [item] [water]
+op close_list: [item] []
+op string: [total] [six]
+op string: [one] [one]
+op open_leaf_list: [two] []
+op string: [two] [two]
+op close_leaf_list: [two] []
+op string: [three] [three]
+op close_container: [contents] []
+op close_container: [data] []
+op close_container: [top] []
+op finish: [] []
+op flush: [] []
diff --git a/0.4.6/tests/core/saved/test_09.H.err b/0.4.6/tests/core/saved/test_09.H.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_09.H.err
diff --git a/0.4.6/tests/core/saved/test_09.H.out b/0.4.6/tests/core/saved/test_09.H.out
new file mode 100644
index 0000000..899cd2f
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_09.H.out
@@ -0,0 +1 @@
+<div class="line"><div class="title">Item </div><div class="title"> Count</div></div><div class="line"><div class="text">Name: </div><div class="data" data-tag="name">gum </div></div><div class="line"><div class="text">Name: </div><div class="data" data-tag="name">rope </div></div><div class="line"><div class="text">Name: </div><div class="data" data-tag="name">ladder </div></div><div class="line"><div class="text">Name: </div><div class="data" data-tag="name">bolt </div></div><div class="line"><div class="text">Name: </div><div class="data" data-tag="name">water </div></div><div class="line"></div><div class="line"></div><div class="line"><div class="title">Item </div><div class="title"> Count</div></div><div class="line"><div class="text">Name: </div><div class="data" data-tag="item">gum </div></div><div class="line"><div class="text">Name: </div><div class="data" data-tag="item">rope </div></div><div class="line"><div class="text">Name: </div><div class="data" data-tag="item">ladder </div></div><div class="line"><div class="text">Name: </div><div class="data" data-tag="item">bolt </div></div><div class="line"><div class="text">Name: </div><div class="data" data-tag="item">water </div></div><div class="line"></div><div class="line"></div><div class="line"><div class="title">Test </div><div class="title"> Three</div></div><div class="line"><div class="text">Name: </div><div class="data" data-tag="item">gum </div></div><div class="line"><div class="text">Name: </div><div class="data" data-tag="item">rope </div></div><div class="line"><div class="text">Name: </div><div class="data" data-tag="item">ladder </div></div><div class="line"><div class="text">Name: </div><div class="data" data-tag="item">bolt </div></div><div class="line"><div class="text">Name: </div><div class="data" data-tag="item">water </div></div><div class="line"><div class="label">Total:</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="total">six</div></div><div class="line"><div class="data" data-tag="one">one</div><div class="data" data-tag="two">two</div><div class="data" data-tag="three">three</div></div><div class="line"></div> \ No newline at end of file
diff --git a/0.4.6/tests/core/saved/test_09.HIPx.err b/0.4.6/tests/core/saved/test_09.HIPx.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_09.HIPx.err
diff --git a/0.4.6/tests/core/saved/test_09.HIPx.out b/0.4.6/tests/core/saved/test_09.HIPx.out
new file mode 100644
index 0000000..a63f292
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_09.HIPx.out
@@ -0,0 +1,93 @@
+<div class="line">
+ <div class="title">Item </div>
+ <div class="title"> Count</div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="name" data-xpath="/top/data/contents/name">gum </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="name" data-xpath="/top/data/contents/name">rope </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="name" data-xpath="/top/data/contents/name">ladder </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="name" data-xpath="/top/data/contents/name">bolt </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="name" data-xpath="/top/data/contents/name">water </div>
+</div>
+<div class="line">
+</div>
+<div class="line">
+</div>
+<div class="line">
+ <div class="title">Item </div>
+ <div class="title"> Count</div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="item" data-xpath="/top/data/contents/item">gum </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="item" data-xpath="/top/data/contents/item">rope </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="item" data-xpath="/top/data/contents/item">ladder </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="item" data-xpath="/top/data/contents/item">bolt </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="item" data-xpath="/top/data/contents/item">water </div>
+</div>
+<div class="line">
+</div>
+<div class="line">
+</div>
+<div class="line">
+ <div class="title">Test </div>
+ <div class="title"> Three</div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="item" data-xpath="/top/data/contents/item">gum </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="item" data-xpath="/top/data/contents/item">rope </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="item" data-xpath="/top/data/contents/item">ladder </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="item" data-xpath="/top/data/contents/item">bolt </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="item" data-xpath="/top/data/contents/item">water </div>
+</div>
+<div class="line">
+ <div class="label">Total:</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="total" data-xpath="/top/data/contents/total">six</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="one" data-xpath="/top/data/contents/one">one</div>
+ <div class="data" data-tag="two" data-xpath="/top/data/contents/two">two</div>
+ <div class="data" data-tag="three" data-xpath="/top/data/contents/three">three</div>
+</div>
+<div class="line">
+</div>
diff --git a/0.4.6/tests/core/saved/test_09.HP.err b/0.4.6/tests/core/saved/test_09.HP.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_09.HP.err
diff --git a/0.4.6/tests/core/saved/test_09.HP.out b/0.4.6/tests/core/saved/test_09.HP.out
new file mode 100644
index 0000000..8a8f700
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_09.HP.out
@@ -0,0 +1,93 @@
+<div class="line">
+ <div class="title">Item </div>
+ <div class="title"> Count</div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="name">gum </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="name">rope </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="name">ladder </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="name">bolt </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="name">water </div>
+</div>
+<div class="line">
+</div>
+<div class="line">
+</div>
+<div class="line">
+ <div class="title">Item </div>
+ <div class="title"> Count</div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="item">gum </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="item">rope </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="item">ladder </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="item">bolt </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="item">water </div>
+</div>
+<div class="line">
+</div>
+<div class="line">
+</div>
+<div class="line">
+ <div class="title">Test </div>
+ <div class="title"> Three</div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="item">gum </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="item">rope </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="item">ladder </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="item">bolt </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="item">water </div>
+</div>
+<div class="line">
+ <div class="label">Total:</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="total">six</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="one">one</div>
+ <div class="data" data-tag="two">two</div>
+ <div class="data" data-tag="three">three</div>
+</div>
+<div class="line">
+</div>
diff --git a/0.4.6/tests/core/saved/test_09.J.err b/0.4.6/tests/core/saved/test_09.J.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_09.J.err
diff --git a/0.4.6/tests/core/saved/test_09.J.out b/0.4.6/tests/core/saved/test_09.J.out
new file mode 100644
index 0000000..e43ad31
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_09.J.out
@@ -0,0 +1,2 @@
+{"top": {"data": {"contents": {"name": ["gum","rope","ladder","bolt","water"]}, "contents": {"item": ["gum","rope","ladder","bolt","water"]}, "contents": {"item": ["gum","rope","ladder","bolt","water"],"total":"six","one":"one", "two": ["two"],"three":"three"}}}
+}
diff --git a/0.4.6/tests/core/saved/test_09.JP.err b/0.4.6/tests/core/saved/test_09.JP.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_09.JP.err
diff --git a/0.4.6/tests/core/saved/test_09.JP.out b/0.4.6/tests/core/saved/test_09.JP.out
new file mode 100644
index 0000000..48e20c1
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_09.JP.out
@@ -0,0 +1,39 @@
+{
+ "top": {
+ "data": {
+ "contents": {
+ "name": [
+ "gum",
+ "rope",
+ "ladder",
+ "bolt",
+ "water"
+ ]
+ },
+ "contents": {
+ "item": [
+ "gum",
+ "rope",
+ "ladder",
+ "bolt",
+ "water"
+ ]
+ },
+ "contents": {
+ "item": [
+ "gum",
+ "rope",
+ "ladder",
+ "bolt",
+ "water"
+ ],
+ "total": "six",
+ "one": "one",
+ "two": [
+ "two"
+ ],
+ "three": "three"
+ }
+ }
+ }
+}
diff --git a/0.4.6/tests/core/saved/test_09.T.err b/0.4.6/tests/core/saved/test_09.T.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_09.T.err
diff --git a/0.4.6/tests/core/saved/test_09.T.out b/0.4.6/tests/core/saved/test_09.T.out
new file mode 100644
index 0000000..5bb163e
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_09.T.out
@@ -0,0 +1,25 @@
+Item Count
+Name: gum
+Name: rope
+Name: ladder
+Name: bolt
+Name: water
+
+
+Item Count
+Name: gum
+Name: rope
+Name: ladder
+Name: bolt
+Name: water
+
+
+Test Three
+Name: gum
+Name: rope
+Name: ladder
+Name: bolt
+Name: water
+Total:: six
+onetwothree
+
diff --git a/0.4.6/tests/core/saved/test_09.X.err b/0.4.6/tests/core/saved/test_09.X.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_09.X.err
diff --git a/0.4.6/tests/core/saved/test_09.X.out b/0.4.6/tests/core/saved/test_09.X.out
new file mode 100644
index 0000000..21ce1ce
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_09.X.out
@@ -0,0 +1 @@
+<top><data><contents><name>gum</name><name>rope</name><name>ladder</name><name>bolt</name><name>water</name></contents><contents><item>gum</item><item>rope</item><item>ladder</item><item>bolt</item><item>water</item></contents><contents><item>gum</item><item>rope</item><item>ladder</item><item>bolt</item><item>water</item><total>six</total><one>one</one><two>two</two><three>three</three></contents></data></top> \ No newline at end of file
diff --git a/0.4.6/tests/core/saved/test_09.XP.err b/0.4.6/tests/core/saved/test_09.XP.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_09.XP.err
diff --git a/0.4.6/tests/core/saved/test_09.XP.out b/0.4.6/tests/core/saved/test_09.XP.out
new file mode 100644
index 0000000..9476126
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_09.XP.out
@@ -0,0 +1,29 @@
+<top>
+ <data>
+ <contents>
+ <name>gum</name>
+ <name>rope</name>
+ <name>ladder</name>
+ <name>bolt</name>
+ <name>water</name>
+ </contents>
+ <contents>
+ <item>gum</item>
+ <item>rope</item>
+ <item>ladder</item>
+ <item>bolt</item>
+ <item>water</item>
+ </contents>
+ <contents>
+ <item>gum</item>
+ <item>rope</item>
+ <item>ladder</item>
+ <item>bolt</item>
+ <item>water</item>
+ <total>six</total>
+ <one>one</one>
+ <two>two</two>
+ <three>three</three>
+ </contents>
+ </data>
+</top>
diff --git a/0.4.6/tests/core/saved/test_10.E.err b/0.4.6/tests/core/saved/test_10.E.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_10.E.err
diff --git a/0.4.6/tests/core/saved/test_10.E.out b/0.4.6/tests/core/saved/test_10.E.out
new file mode 100644
index 0000000..4f21cda
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_10.E.out
@@ -0,0 +1,126 @@
+op create: [] []
+op version: [] [3.1.4]
+op open_container: [top] []
+op attr: [test] [value]
+op open_container: [data] []
+op open_list: [item] []
+op attr: [test2] [value2]
+op close_list: [item] []
+op string: [data] [bold]
+op string: [data] [bold-ul]
+op string: [data] [triple]
+op string: [data] [inv-ul]
+op string: [data] [underline]
+op string: [data] [plain]
+op open_list: [item] []
+op open_instance: [item] []
+op attr: [test3] [value3]
+op string: [sku] [GRO-000-415]
+op string: [name] [gum]
+op content: [sold] [1412]
+op content: [in-stock] [54]
+op content: [on-order] [10]
+op close_instance: [item] []
+op open_instance: [item] []
+op attr: [test3] [value3]
+op string: [sku] [HRD-000-212]
+op string: [name] [rope]
+op content: [sold] [85]
+op content: [in-stock] [4]
+op content: [on-order] [2]
+op close_instance: [item] []
+op open_instance: [item] []
+op attr: [test3] [value3]
+op string: [sku] [HRD-000-517]
+op string: [name] [ladder]
+op content: [sold] [0]
+op content: [in-stock] [2]
+op content: [on-order] [1]
+op close_instance: [item] []
+op open_instance: [item] []
+op attr: [test3] [value3]
+op string: [sku] [HRD-000-632]
+op string: [name] [bolt]
+op content: [sold] [4123]
+op content: [in-stock] [144]
+op content: [on-order] [42]
+op close_instance: [item] []
+op open_instance: [item] []
+op attr: [test3] [value3]
+op string: [sku] [GRO-000-2331]
+op string: [name] [water]
+op content: [sold] [17]
+op content: [in-stock] [14]
+op content: [on-order] [2]
+op close_instance: [item] []
+op close_list: [item] []
+op close_container: [data] []
+op open_container: [data] []
+op open_list: [item] []
+op open_instance: [item] []
+op string: [sku] [GRO-000-415]
+op string: [name] [gum]
+op content: [sold] [1412.0]
+op content: [in-stock] [54]
+op content: [on-order] [10]
+op close_instance: [item] []
+op open_instance: [item] []
+op string: [sku] [HRD-000-212]
+op string: [name] [rope]
+op content: [sold] [85.0]
+op content: [in-stock] [4]
+op content: [on-order] [2]
+op close_instance: [item] []
+op open_instance: [item] []
+op string: [sku] [HRD-000-517]
+op string: [name] [ladder]
+op content: [sold] [0]
+op content: [in-stock] [2]
+op content: [on-order] [1]
+op close_instance: [item] []
+op open_instance: [item] []
+op string: [sku] [HRD-000-632]
+op string: [name] [bolt]
+op content: [sold] [4123.0]
+op content: [in-stock] [144]
+op content: [on-order] [42]
+op close_instance: [item] []
+op open_instance: [item] []
+op string: [sku] [GRO-000-2331]
+op string: [name] [water]
+op content: [sold] [17.0]
+op content: [in-stock] [14]
+op content: [on-order] [2]
+op close_instance: [item] []
+op close_list: [item] []
+op close_container: [data] []
+op open_container: [data] []
+op open_list: [item] []
+op open_instance: [item] []
+op string: [sku] [GRO-000-533]
+op string: [name] [fish]
+op content: [sold] [1321.0]
+op content: [in-stock] [45]
+op content: [on-order] [1]
+op close_instance: [item] []
+op close_list: [item] []
+op close_container: [data] []
+op open_container: [data] []
+op open_list: [item] []
+op attr: [test4] [value4]
+op string: [item] [gum]
+op attr: [test4] [value4]
+op string: [item] [rope]
+op attr: [test4] [value4]
+op string: [item] [ladder]
+op attr: [test4] [value4]
+op string: [item] [bolt]
+op attr: [test4] [value4]
+op string: [item] [water]
+op close_list: [item] []
+op close_container: [data] []
+op content: [cost] [425]
+op content: [cost] [455]
+op close_container: [top] []
+op finish: [] []
+op flush: [] []
diff --git a/0.4.6/tests/core/saved/test_10.H.err b/0.4.6/tests/core/saved/test_10.H.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_10.H.err
diff --git a/0.4.6/tests/core/saved/test_10.H.out b/0.4.6/tests/core/saved/test_10.H.out
new file mode 100644
index 0000000..d4ec07d
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_10.H.out
@@ -0,0 +1 @@
+<div class="line"><div class="title color-fg-blue">blue</div><div class="title color-fg-green color-bg-blue">green</div><div class="title color-fg-red color-bg-green">red</div><div class="title color-fg-yellow color-bg-red">yellow</div><div class="title color-bg-yellow">default</div></div><div class="line"><div class="data effect-bold" data-tag="data">bold</div><div class="text effect-bold"> </div><div class="data effect-bold effect-underline" data-tag="data">bold-ul</div><div class="text effect-bold effect-underline"> </div><div class="data effect-bold effect-underline effect-inverse color-fg-inverse color-bg-inverse" data-tag="data">triple</div><div class="text effect-bold effect-underline effect-inverse color-fg-inverse color-bg-inverse"> </div><div class="data effect-underline effect-inverse color-fg-inverse color-bg-inverse" data-tag="data">inv-ul</div><div class="text effect-underline effect-inverse color-fg-inverse color-bg-inverse"> </div><div class="data effect-underline" data-tag="data">underline</div><div class="text effect-underline"> </div><div class="data" data-tag="data">plain</div></div><div class="line"><div class="title">Item </div><div class="title effect-bold effect-underline"> Total Sold</div><div class="title effect-underline"> In Stock</div><div class="title effect-underline effect-inverse color-fg-inverse color-bg-inverse"> On Order</div><div class="title"> SKU</div></div><div class="line"><div class="data" data-tag="name" data-key="key">gum </div><div class="data" data-tag="sold"> 1412</div><div class="data" data-tag="in-stock"> 54</div><div class="data color-fg-yellow" data-tag="on-order"> 10</div><div class="data" data-tag="sku" data-key="key"> GRO-000-415</div></div><div class="line"><div class="data" data-tag="name" data-key="key">rope </div><div class="data" data-tag="sold"> 85</div><div class="data effect-inverse color-fg-inverse color-bg-inverse" data-tag="in-stock"> 4</div><div class="data" data-tag="on-order"> 2</div><div class="data" data-tag="sku" data-key="key"> HRD-000-212</div></div><div class="line"><div class="data" data-tag="name" data-key="key">ladder </div><div class="data" data-tag="sold"> 0</div><div class="data effect-inverse color-fg-inverse color-bg-inverse" data-tag="in-stock"> 2</div><div class="data" data-tag="on-order"> 1</div><div class="data" data-tag="sku" data-key="key"> HRD-000-517</div></div><div class="line"><div class="data" data-tag="name" data-key="key">bolt </div><div class="data" data-tag="sold"> 4123</div><div class="data" data-tag="in-stock"> 144</div><div class="data color-fg-yellow" data-tag="on-order"> 42</div><div class="data" data-tag="sku" data-key="key"> HRD-000-632</div></div><div class="line"><div class="data" data-tag="name" data-key="key">water </div><div class="data" data-tag="sold"> 17</div><div class="data" data-tag="in-stock"> 14</div><div class="data" data-tag="on-order"> 2</div><div class="data" data-tag="sku" data-key="key"> GRO-000-2331</div></div><div class="line"></div><div class="line"></div><div class="line"><div class="label">Item</div><div class="text"> '</div><div class="data" data-tag="name" data-key="key">gum</div><div class="text">':</div></div><div class="line"><div class="padding"> </div><div class="label">Total sold</div><div class="text">: </div><div class="data" data-tag="sold">1412.0</div></div><div class="line"><div class="padding"> </div><div class="label">In stock</div><div class="decoration">:</div><div class="padding"> </div><div class="data effect-inverse color-fg-inverse color-bg-inverse" data-tag="in-stock">54</div></div><div class="line"><div class="padding"> </div><div class="label">On order</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="on-order">10</div></div><div class="line"><div class="padding"> </div><div class="label">SKU</div><div class="text">: </div><div class="data" data-tag="sku" data-key="key">GRO-000-415</div></div><div class="line"><div class="label">Item</div><div class="text"> '</div><div class="data" data-tag="name" data-key="key">rope</div><div class="text">':</div></div><div class="line"><div class="padding"> </div><div class="label">Total sold</div><div class="text">: </div><div class="data" data-tag="sold">85.0</div></div><div class="line"><div class="padding"> </div><div class="label">In stock</div><div class="decoration">:</div><div class="padding"> </div><div class="data effect-inverse color-fg-inverse color-bg-inverse" data-tag="in-stock">4</div></div><div class="line"><div class="padding"> </div><div class="label">On order</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="on-order">2</div></div><div class="line"><div class="padding"> </div><div class="label">SKU</div><div class="text">: </div><div class="data" data-tag="sku" data-key="key">HRD-000-212</div></div><div class="line"><div class="label">Item</div><div class="text"> '</div><div class="data" data-tag="name" data-key="key">ladder</div><div class="text">':</div></div><div class="line"><div class="padding"> </div><div class="label">Total sold</div><div class="text">: </div><div class="data" data-tag="sold">0</div></div><div class="line"><div class="padding"> </div><div class="label">In stock</div><div class="decoration">:</div><div class="padding"> </div><div class="data effect-inverse color-fg-inverse color-bg-inverse" data-tag="in-stock">2</div></div><div class="line"><div class="padding"> </div><div class="label">On order</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="on-order">1</div></div><div class="line"><div class="padding"> </div><div class="label">SKU</div><div class="text">: </div><div class="data" data-tag="sku" data-key="key">HRD-000-517</div></div><div class="line"><div class="label">Item</div><div class="text"> '</div><div class="data" data-tag="name" data-key="key">bolt</div><div class="text">':</div></div><div class="line"><div class="padding"> </div><div class="label">Total sold</div><div class="text">: </div><div class="data" data-tag="sold">4123.0</div></div><div class="line"><div class="padding"> </div><div class="label">In stock</div><div class="decoration">:</div><div class="padding"> </div><div class="data effect-inverse color-fg-inverse color-bg-inverse" data-tag="in-stock">144</div></div><div class="line"><div class="padding"> </div><div class="label">On order</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="on-order">42</div></div><div class="line"><div class="padding"> </div><div class="label">SKU</div><div class="text">: </div><div class="data" data-tag="sku" data-key="key">HRD-000-632</div></div><div class="line"><div class="label">Item</div><div class="text"> '</div><div class="data" data-tag="name" data-key="key">water</div><div class="text">':</div></div><div class="line"><div class="padding"> </div><div class="label">Total sold</div><div class="text">: </div><div class="data" data-tag="sold">17.0</div></div><div class="line"><div class="padding"> </div><div class="label">In stock</div><div class="decoration">:</div><div class="padding"> </div><div class="data effect-inverse color-fg-inverse color-bg-inverse" data-tag="in-stock">14</div></div><div class="line"><div class="padding"> </div><div class="label">On order</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="on-order">2</div></div><div class="line"><div class="padding"> </div><div class="label">SKU</div><div class="text">: </div><div class="data" data-tag="sku" data-key="key">GRO-000-2331</div></div><div class="line"><div class="label">Item</div><div class="text"> '</div><div class="data" data-tag="name" data-key="key">fish</div><div class="text">':</div></div><div class="line"><div class="padding"> </div><div class="label effect-bold color-fg-white color-bg-blue">Total sold</div><div class="text effect-bold color-fg-white color-bg-blue">: </div><div class="data effect-bold color-fg-white color-bg-blue" data-tag="sold">1321.0</div></div><div class="line"><div class="padding"> </div><div class="label">In stock</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="in-stock">45</div></div><div class="line"><div class="padding"> </div><div class="label">On order</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="on-order">1</div></div><div class="line"><div class="padding"> </div><div class="label">SKU</div><div class="text">: </div><div class="data" data-tag="sku" data-key="key">GRO-000-533</div></div><div class="line"><div class="label">Item</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="item">gum</div></div><div class="line"><div class="label">Item</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="item">rope</div></div><div class="line"><div class="label">Item</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="item">ladder</div></div><div class="line"><div class="label">Item</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="item">bolt</div></div><div class="line"><div class="label">Item</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="item">water</div></div><div class="line"><div class="text">X</div><div class="text">X</div><div class="text">X</div><div class="text">X</div><div class="text">X</div><div class="text">X</div><div class="text">X</div><div class="text">X</div></div><div class="line"><div class="text">X</div><div class="padding"> </div><div class="text">X</div><div class="label">Cost</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="cost">425</div></div><div class="line"><div class="text">X</div><div class="padding"> </div><div class="text">X</div><div class="label">Cost</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="cost">455</div></div> \ No newline at end of file
diff --git a/0.4.6/tests/core/saved/test_10.HIPx.err b/0.4.6/tests/core/saved/test_10.HIPx.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_10.HIPx.err
diff --git a/0.4.6/tests/core/saved/test_10.HIPx.out b/0.4.6/tests/core/saved/test_10.HIPx.out
new file mode 100644
index 0000000..ef64173
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_10.HIPx.out
@@ -0,0 +1,316 @@
+<div class="line">
+ <div class="title color-fg-blue">blue</div>
+ <div class="title color-fg-green color-bg-blue">green</div>
+ <div class="title color-fg-red color-bg-green">red</div>
+ <div class="title color-fg-yellow color-bg-red">yellow</div>
+ <div class="title color-bg-yellow">default</div>
+</div>
+<div class="line">
+ <div class="data effect-bold" data-tag="data" data-xpath="/top/data/data">bold</div>
+ <div class="text effect-bold"> </div>
+ <div class="data effect-bold effect-underline" data-tag="data" data-xpath="/top/data/data">bold-ul</div>
+ <div class="text effect-bold effect-underline"> </div>
+ <div class="data effect-bold effect-underline effect-inverse color-fg-inverse color-bg-inverse" data-tag="data" data-xpath="/top/data/data">triple</div>
+ <div class="text effect-bold effect-underline effect-inverse color-fg-inverse color-bg-inverse"> </div>
+ <div class="data effect-underline effect-inverse color-fg-inverse color-bg-inverse" data-tag="data" data-xpath="/top/data/data">inv-ul</div>
+ <div class="text effect-underline effect-inverse color-fg-inverse color-bg-inverse"> </div>
+ <div class="data effect-underline" data-tag="data" data-xpath="/top/data/data">underline</div>
+ <div class="text effect-underline"> </div>
+ <div class="data" data-tag="data" data-xpath="/top/data/data">plain</div>
+</div>
+<div class="line">
+ <div class="title">Item </div>
+ <div class="title effect-bold effect-underline"> Total Sold</div>
+ <div class="title effect-underline"> In Stock</div>
+ <div class="title effect-underline effect-inverse color-fg-inverse color-bg-inverse"> On Order</div>
+ <div class="title"> SKU</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data/item/name" data-type="string" data-help="Name of the item" data-key="key">gum </div>
+ <div class="data" data-tag="sold" data-xpath="/top/data/item[sku = 'GRO-000-415'][name = 'gum']/sold" data-type="number" data-help="Number of items sold"> 1412</div>
+ <div class="data" data-tag="in-stock" data-xpath="/top/data/item[sku = 'GRO-000-415'][name = 'gum']/in-stock" data-type="number" data-help="Number of items in stock"> 54</div>
+ <div class="data color-fg-yellow" data-tag="on-order" data-xpath="/top/data/item[sku = 'GRO-000-415'][name = 'gum']/on-order" data-type="number" data-help="Number of items on order"> 10</div>
+ <div class="data" data-tag="sku" data-xpath="/top/data/item/sku" data-type="string" data-help="Stock Keeping Unit" data-key="key"> GRO-000-415</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data/item/name" data-type="string" data-help="Name of the item" data-key="key">rope </div>
+ <div class="data" data-tag="sold" data-xpath="/top/data/item[sku = 'HRD-000-212'][name = 'rope']/sold" data-type="number" data-help="Number of items sold"> 85</div>
+ <div class="data effect-inverse color-fg-inverse color-bg-inverse" data-tag="in-stock" data-xpath="/top/data/item[sku = 'HRD-000-212'][name = 'rope']/in-stock" data-type="number" data-help="Number of items in stock"> 4</div>
+ <div class="data" data-tag="on-order" data-xpath="/top/data/item[sku = 'HRD-000-212'][name = 'rope']/on-order" data-type="number" data-help="Number of items on order"> 2</div>
+ <div class="data" data-tag="sku" data-xpath="/top/data/item/sku" data-type="string" data-help="Stock Keeping Unit" data-key="key"> HRD-000-212</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data/item/name" data-type="string" data-help="Name of the item" data-key="key">ladder </div>
+ <div class="data" data-tag="sold" data-xpath="/top/data/item[sku = 'HRD-000-517'][name = 'ladder']/sold" data-type="number" data-help="Number of items sold"> 0</div>
+ <div class="data effect-inverse color-fg-inverse color-bg-inverse" data-tag="in-stock" data-xpath="/top/data/item[sku = 'HRD-000-517'][name = 'ladder']/in-stock" data-type="number" data-help="Number of items in stock"> 2</div>
+ <div class="data" data-tag="on-order" data-xpath="/top/data/item[sku = 'HRD-000-517'][name = 'ladder']/on-order" data-type="number" data-help="Number of items on order"> 1</div>
+ <div class="data" data-tag="sku" data-xpath="/top/data/item/sku" data-type="string" data-help="Stock Keeping Unit" data-key="key"> HRD-000-517</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data/item/name" data-type="string" data-help="Name of the item" data-key="key">bolt </div>
+ <div class="data" data-tag="sold" data-xpath="/top/data/item[sku = 'HRD-000-632'][name = 'bolt']/sold" data-type="number" data-help="Number of items sold"> 4123</div>
+ <div class="data" data-tag="in-stock" data-xpath="/top/data/item[sku = 'HRD-000-632'][name = 'bolt']/in-stock" data-type="number" data-help="Number of items in stock"> 144</div>
+ <div class="data color-fg-yellow" data-tag="on-order" data-xpath="/top/data/item[sku = 'HRD-000-632'][name = 'bolt']/on-order" data-type="number" data-help="Number of items on order"> 42</div>
+ <div class="data" data-tag="sku" data-xpath="/top/data/item/sku" data-type="string" data-help="Stock Keeping Unit" data-key="key"> HRD-000-632</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data/item/name" data-type="string" data-help="Name of the item" data-key="key">water </div>
+ <div class="data" data-tag="sold" data-xpath="/top/data/item[sku = 'GRO-000-2331'][name = 'water']/sold" data-type="number" data-help="Number of items sold"> 17</div>
+ <div class="data" data-tag="in-stock" data-xpath="/top/data/item[sku = 'GRO-000-2331'][name = 'water']/in-stock" data-type="number" data-help="Number of items in stock"> 14</div>
+ <div class="data" data-tag="on-order" data-xpath="/top/data/item[sku = 'GRO-000-2331'][name = 'water']/on-order" data-type="number" data-help="Number of items on order"> 2</div>
+ <div class="data" data-tag="sku" data-xpath="/top/data/item/sku" data-type="string" data-help="Stock Keeping Unit" data-key="key"> GRO-000-2331</div>
+</div>
+<div class="line">
+</div>
+<div class="line">
+</div>
+<div class="line">
+ <div class="label">Item</div>
+ <div class="text"> '</div>
+ <div class="data" data-tag="name" data-xpath="/top/data/item/name" data-type="string" data-help="Name of the item" data-key="key">gum</div>
+ <div class="text">':</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">Total sold</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sold" data-xpath="/top/data/item[sku = 'GRO-000-415'][name = 'gum']/sold" data-type="number" data-help="Number of items sold">1412.0</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">In stock</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data effect-inverse color-fg-inverse color-bg-inverse" data-tag="in-stock" data-xpath="/top/data/item[sku = 'GRO-000-415'][name = 'gum']/in-stock" data-type="number" data-help="Number of items in stock">54</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">On order</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="on-order" data-xpath="/top/data/item[sku = 'GRO-000-415'][name = 'gum']/on-order" data-type="number" data-help="Number of items on order">10</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">SKU</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sku" data-xpath="/top/data/item/sku" data-type="string" data-help="Stock Keeping Unit" data-key="key">GRO-000-415</div>
+</div>
+<div class="line">
+ <div class="label">Item</div>
+ <div class="text"> '</div>
+ <div class="data" data-tag="name" data-xpath="/top/data/item/name" data-type="string" data-help="Name of the item" data-key="key">rope</div>
+ <div class="text">':</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">Total sold</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sold" data-xpath="/top/data/item[sku = 'HRD-000-212'][name = 'rope']/sold" data-type="number" data-help="Number of items sold">85.0</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">In stock</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data effect-inverse color-fg-inverse color-bg-inverse" data-tag="in-stock" data-xpath="/top/data/item[sku = 'HRD-000-212'][name = 'rope']/in-stock" data-type="number" data-help="Number of items in stock">4</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">On order</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="on-order" data-xpath="/top/data/item[sku = 'HRD-000-212'][name = 'rope']/on-order" data-type="number" data-help="Number of items on order">2</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">SKU</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sku" data-xpath="/top/data/item/sku" data-type="string" data-help="Stock Keeping Unit" data-key="key">HRD-000-212</div>
+</div>
+<div class="line">
+ <div class="label">Item</div>
+ <div class="text"> '</div>
+ <div class="data" data-tag="name" data-xpath="/top/data/item/name" data-type="string" data-help="Name of the item" data-key="key">ladder</div>
+ <div class="text">':</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">Total sold</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sold" data-xpath="/top/data/item[sku = 'HRD-000-517'][name = 'ladder']/sold" data-type="number" data-help="Number of items sold">0</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">In stock</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data effect-inverse color-fg-inverse color-bg-inverse" data-tag="in-stock" data-xpath="/top/data/item[sku = 'HRD-000-517'][name = 'ladder']/in-stock" data-type="number" data-help="Number of items in stock">2</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">On order</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="on-order" data-xpath="/top/data/item[sku = 'HRD-000-517'][name = 'ladder']/on-order" data-type="number" data-help="Number of items on order">1</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">SKU</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sku" data-xpath="/top/data/item/sku" data-type="string" data-help="Stock Keeping Unit" data-key="key">HRD-000-517</div>
+</div>
+<div class="line">
+ <div class="label">Item</div>
+ <div class="text"> '</div>
+ <div class="data" data-tag="name" data-xpath="/top/data/item/name" data-type="string" data-help="Name of the item" data-key="key">bolt</div>
+ <div class="text">':</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">Total sold</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sold" data-xpath="/top/data/item[sku = 'HRD-000-632'][name = 'bolt']/sold" data-type="number" data-help="Number of items sold">4123.0</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">In stock</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data effect-inverse color-fg-inverse color-bg-inverse" data-tag="in-stock" data-xpath="/top/data/item[sku = 'HRD-000-632'][name = 'bolt']/in-stock" data-type="number" data-help="Number of items in stock">144</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">On order</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="on-order" data-xpath="/top/data/item[sku = 'HRD-000-632'][name = 'bolt']/on-order" data-type="number" data-help="Number of items on order">42</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">SKU</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sku" data-xpath="/top/data/item/sku" data-type="string" data-help="Stock Keeping Unit" data-key="key">HRD-000-632</div>
+</div>
+<div class="line">
+ <div class="label">Item</div>
+ <div class="text"> '</div>
+ <div class="data" data-tag="name" data-xpath="/top/data/item/name" data-type="string" data-help="Name of the item" data-key="key">water</div>
+ <div class="text">':</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">Total sold</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sold" data-xpath="/top/data/item[sku = 'GRO-000-2331'][name = 'water']/sold" data-type="number" data-help="Number of items sold">17.0</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">In stock</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data effect-inverse color-fg-inverse color-bg-inverse" data-tag="in-stock" data-xpath="/top/data/item[sku = 'GRO-000-2331'][name = 'water']/in-stock" data-type="number" data-help="Number of items in stock">14</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">On order</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="on-order" data-xpath="/top/data/item[sku = 'GRO-000-2331'][name = 'water']/on-order" data-type="number" data-help="Number of items on order">2</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">SKU</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sku" data-xpath="/top/data/item/sku" data-type="string" data-help="Stock Keeping Unit" data-key="key">GRO-000-2331</div>
+</div>
+<div class="line">
+ <div class="label">Item</div>
+ <div class="text"> '</div>
+ <div class="data" data-tag="name" data-xpath="/top/data/item/name" data-type="string" data-help="Name of the item" data-key="key">fish</div>
+ <div class="text">':</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label effect-bold color-fg-white color-bg-blue">Total sold</div>
+ <div class="text effect-bold color-fg-white color-bg-blue">: </div>
+ <div class="data effect-bold color-fg-white color-bg-blue" data-tag="sold" data-xpath="/top/data/item[sku = 'GRO-000-533'][name = 'fish']/sold" data-type="number" data-help="Number of items sold">1321.0</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">In stock</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="in-stock" data-xpath="/top/data/item[sku = 'GRO-000-533'][name = 'fish']/in-stock" data-type="number" data-help="Number of items in stock">45</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">On order</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="on-order" data-xpath="/top/data/item[sku = 'GRO-000-533'][name = 'fish']/on-order" data-type="number" data-help="Number of items on order">1</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">SKU</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sku" data-xpath="/top/data/item/sku" data-type="string" data-help="Stock Keeping Unit" data-key="key">GRO-000-533</div>
+</div>
+<div class="line">
+ <div class="label">Item</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="item" data-xpath="/top/data/item">gum</div>
+</div>
+<div class="line">
+ <div class="label">Item</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="item" data-xpath="/top/data/item">rope</div>
+</div>
+<div class="line">
+ <div class="label">Item</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="item" data-xpath="/top/data/item">ladder</div>
+</div>
+<div class="line">
+ <div class="label">Item</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="item" data-xpath="/top/data/item">bolt</div>
+</div>
+<div class="line">
+ <div class="label">Item</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="item" data-xpath="/top/data/item">water</div>
+</div>
+<div class="line">
+ <div class="text">X</div>
+ <div class="text">X</div>
+ <div class="text">X</div>
+ <div class="text">X</div>
+ <div class="text">X</div>
+ <div class="text">X</div>
+ <div class="text">X</div>
+ <div class="text">X</div>
+</div>
+<div class="line">
+ <div class="text">X</div>
+ <div class="padding"> </div>
+ <div class="text">X</div>
+ <div class="label">Cost</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="cost" data-xpath="/top/cost">425</div>
+</div>
+<div class="line">
+ <div class="text">X</div>
+ <div class="padding"> </div>
+ <div class="text">X</div>
+ <div class="label">Cost</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="cost" data-xpath="/top/cost">455</div>
+</div>
diff --git a/0.4.6/tests/core/saved/test_10.HP.err b/0.4.6/tests/core/saved/test_10.HP.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_10.HP.err
diff --git a/0.4.6/tests/core/saved/test_10.HP.out b/0.4.6/tests/core/saved/test_10.HP.out
new file mode 100644
index 0000000..abb1b01
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_10.HP.out
@@ -0,0 +1,316 @@
+<div class="line">
+ <div class="title color-fg-blue">blue</div>
+ <div class="title color-fg-green color-bg-blue">green</div>
+ <div class="title color-fg-red color-bg-green">red</div>
+ <div class="title color-fg-yellow color-bg-red">yellow</div>
+ <div class="title color-bg-yellow">default</div>
+</div>
+<div class="line">
+ <div class="data effect-bold" data-tag="data">bold</div>
+ <div class="text effect-bold"> </div>
+ <div class="data effect-bold effect-underline" data-tag="data">bold-ul</div>
+ <div class="text effect-bold effect-underline"> </div>
+ <div class="data effect-bold effect-underline effect-inverse color-fg-inverse color-bg-inverse" data-tag="data">triple</div>
+ <div class="text effect-bold effect-underline effect-inverse color-fg-inverse color-bg-inverse"> </div>
+ <div class="data effect-underline effect-inverse color-fg-inverse color-bg-inverse" data-tag="data">inv-ul</div>
+ <div class="text effect-underline effect-inverse color-fg-inverse color-bg-inverse"> </div>
+ <div class="data effect-underline" data-tag="data">underline</div>
+ <div class="text effect-underline"> </div>
+ <div class="data" data-tag="data">plain</div>
+</div>
+<div class="line">
+ <div class="title">Item </div>
+ <div class="title effect-bold effect-underline"> Total Sold</div>
+ <div class="title effect-underline"> In Stock</div>
+ <div class="title effect-underline effect-inverse color-fg-inverse color-bg-inverse"> On Order</div>
+ <div class="title"> SKU</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">gum </div>
+ <div class="data" data-tag="sold"> 1412</div>
+ <div class="data" data-tag="in-stock"> 54</div>
+ <div class="data color-fg-yellow" data-tag="on-order"> 10</div>
+ <div class="data" data-tag="sku" data-key="key"> GRO-000-415</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">rope </div>
+ <div class="data" data-tag="sold"> 85</div>
+ <div class="data effect-inverse color-fg-inverse color-bg-inverse" data-tag="in-stock"> 4</div>
+ <div class="data" data-tag="on-order"> 2</div>
+ <div class="data" data-tag="sku" data-key="key"> HRD-000-212</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">ladder </div>
+ <div class="data" data-tag="sold"> 0</div>
+ <div class="data effect-inverse color-fg-inverse color-bg-inverse" data-tag="in-stock"> 2</div>
+ <div class="data" data-tag="on-order"> 1</div>
+ <div class="data" data-tag="sku" data-key="key"> HRD-000-517</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">bolt </div>
+ <div class="data" data-tag="sold"> 4123</div>
+ <div class="data" data-tag="in-stock"> 144</div>
+ <div class="data color-fg-yellow" data-tag="on-order"> 42</div>
+ <div class="data" data-tag="sku" data-key="key"> HRD-000-632</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">water </div>
+ <div class="data" data-tag="sold"> 17</div>
+ <div class="data" data-tag="in-stock"> 14</div>
+ <div class="data" data-tag="on-order"> 2</div>
+ <div class="data" data-tag="sku" data-key="key"> GRO-000-2331</div>
+</div>
+<div class="line">
+</div>
+<div class="line">
+</div>
+<div class="line">
+ <div class="label">Item</div>
+ <div class="text"> '</div>
+ <div class="data" data-tag="name" data-key="key">gum</div>
+ <div class="text">':</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">Total sold</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sold">1412.0</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">In stock</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data effect-inverse color-fg-inverse color-bg-inverse" data-tag="in-stock">54</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">On order</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="on-order">10</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">SKU</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sku" data-key="key">GRO-000-415</div>
+</div>
+<div class="line">
+ <div class="label">Item</div>
+ <div class="text"> '</div>
+ <div class="data" data-tag="name" data-key="key">rope</div>
+ <div class="text">':</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">Total sold</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sold">85.0</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">In stock</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data effect-inverse color-fg-inverse color-bg-inverse" data-tag="in-stock">4</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">On order</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="on-order">2</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">SKU</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sku" data-key="key">HRD-000-212</div>
+</div>
+<div class="line">
+ <div class="label">Item</div>
+ <div class="text"> '</div>
+ <div class="data" data-tag="name" data-key="key">ladder</div>
+ <div class="text">':</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">Total sold</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sold">0</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">In stock</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data effect-inverse color-fg-inverse color-bg-inverse" data-tag="in-stock">2</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">On order</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="on-order">1</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">SKU</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sku" data-key="key">HRD-000-517</div>
+</div>
+<div class="line">
+ <div class="label">Item</div>
+ <div class="text"> '</div>
+ <div class="data" data-tag="name" data-key="key">bolt</div>
+ <div class="text">':</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">Total sold</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sold">4123.0</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">In stock</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data effect-inverse color-fg-inverse color-bg-inverse" data-tag="in-stock">144</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">On order</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="on-order">42</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">SKU</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sku" data-key="key">HRD-000-632</div>
+</div>
+<div class="line">
+ <div class="label">Item</div>
+ <div class="text"> '</div>
+ <div class="data" data-tag="name" data-key="key">water</div>
+ <div class="text">':</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">Total sold</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sold">17.0</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">In stock</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data effect-inverse color-fg-inverse color-bg-inverse" data-tag="in-stock">14</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">On order</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="on-order">2</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">SKU</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sku" data-key="key">GRO-000-2331</div>
+</div>
+<div class="line">
+ <div class="label">Item</div>
+ <div class="text"> '</div>
+ <div class="data" data-tag="name" data-key="key">fish</div>
+ <div class="text">':</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label effect-bold color-fg-white color-bg-blue">Total sold</div>
+ <div class="text effect-bold color-fg-white color-bg-blue">: </div>
+ <div class="data effect-bold color-fg-white color-bg-blue" data-tag="sold">1321.0</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">In stock</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="in-stock">45</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">On order</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="on-order">1</div>
+</div>
+<div class="line">
+ <div class="padding"> </div>
+ <div class="label">SKU</div>
+ <div class="text">: </div>
+ <div class="data" data-tag="sku" data-key="key">GRO-000-533</div>
+</div>
+<div class="line">
+ <div class="label">Item</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="item">gum</div>
+</div>
+<div class="line">
+ <div class="label">Item</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="item">rope</div>
+</div>
+<div class="line">
+ <div class="label">Item</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="item">ladder</div>
+</div>
+<div class="line">
+ <div class="label">Item</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="item">bolt</div>
+</div>
+<div class="line">
+ <div class="label">Item</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="item">water</div>
+</div>
+<div class="line">
+ <div class="text">X</div>
+ <div class="text">X</div>
+ <div class="text">X</div>
+ <div class="text">X</div>
+ <div class="text">X</div>
+ <div class="text">X</div>
+ <div class="text">X</div>
+ <div class="text">X</div>
+</div>
+<div class="line">
+ <div class="text">X</div>
+ <div class="padding"> </div>
+ <div class="text">X</div>
+ <div class="label">Cost</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="cost">425</div>
+</div>
+<div class="line">
+ <div class="text">X</div>
+ <div class="padding"> </div>
+ <div class="text">X</div>
+ <div class="label">Cost</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="cost">455</div>
+</div>
diff --git a/0.4.6/tests/core/saved/test_10.J.err b/0.4.6/tests/core/saved/test_10.J.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_10.J.err
diff --git a/0.4.6/tests/core/saved/test_10.J.out b/0.4.6/tests/core/saved/test_10.J.out
new file mode 100644
index 0000000..5091685
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_10.J.out
@@ -0,0 +1,2 @@
+{"__version": "3.1.4", "top": {"data": {"item": [],"data":"bold","data":"bold-ul","data":"triple","data":"inv-ul","data":"underline","data":"plain", "item": [{"sku":"GRO-000-415","name":"gum","sold":1412,"in-stock":54,"on-order":10}, {"sku":"HRD-000-212","name":"rope","sold":85,"in-stock":4,"on-order":2}, {"sku":"HRD-000-517","name":"ladder","sold":0,"in-stock":2,"on-order":1}, {"sku":"HRD-000-632","name":"bolt","sold":4123,"in-stock":144,"on-order":42}, {"sku":"GRO-000-2331","name":"water","sold":17,"in-stock":14,"on-order":2}]}, "data": {"item": [{"sku":"GRO-000-415","name":"gum","sold":1412.0,"in-stock":54,"on-order":10}, {"sku":"HRD-000-212","name":"rope","sold":85.0,"in-stock":4,"on-order":2}, {"sku":"HRD-000-517","name":"ladder","sold":0,"in-stock":2,"on-order":1}, {"sku":"HRD-000-632","name":"bolt","sold":4123.0,"in-stock":144,"on-order":42}, {"sku":"GRO-000-2331","name":"water","sold":17.0,"in-stock":14,"on-order":2}]}, "data": {"item": [{"sku":"GRO-000-533","name":"fish","sold":1321.0,"in-stock":45,"on-order":1}]}, "data": {"item": ["gum","rope","ladder","bolt","water"]},"cost":425,"cost":455}
+}
diff --git a/0.4.6/tests/core/saved/test_10.JP.err b/0.4.6/tests/core/saved/test_10.JP.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_10.JP.err
diff --git a/0.4.6/tests/core/saved/test_10.JP.out b/0.4.6/tests/core/saved/test_10.JP.out
new file mode 100644
index 0000000..0ca3269
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_10.JP.out
@@ -0,0 +1,113 @@
+{
+ "__version": "3.1.4",
+ "top": {
+ "data": {
+ "item": [
+ ],
+ "data": "bold",
+ "data": "bold-ul",
+ "data": "triple",
+ "data": "inv-ul",
+ "data": "underline",
+ "data": "plain",
+ "item": [
+ {
+ "sku": "GRO-000-415",
+ "name": "gum",
+ "sold": 1412,
+ "in-stock": 54,
+ "on-order": 10
+ },
+ {
+ "sku": "HRD-000-212",
+ "name": "rope",
+ "sold": 85,
+ "in-stock": 4,
+ "on-order": 2
+ },
+ {
+ "sku": "HRD-000-517",
+ "name": "ladder",
+ "sold": 0,
+ "in-stock": 2,
+ "on-order": 1
+ },
+ {
+ "sku": "HRD-000-632",
+ "name": "bolt",
+ "sold": 4123,
+ "in-stock": 144,
+ "on-order": 42
+ },
+ {
+ "sku": "GRO-000-2331",
+ "name": "water",
+ "sold": 17,
+ "in-stock": 14,
+ "on-order": 2
+ }
+ ]
+ },
+ "data": {
+ "item": [
+ {
+ "sku": "GRO-000-415",
+ "name": "gum",
+ "sold": 1412.0,
+ "in-stock": 54,
+ "on-order": 10
+ },
+ {
+ "sku": "HRD-000-212",
+ "name": "rope",
+ "sold": 85.0,
+ "in-stock": 4,
+ "on-order": 2
+ },
+ {
+ "sku": "HRD-000-517",
+ "name": "ladder",
+ "sold": 0,
+ "in-stock": 2,
+ "on-order": 1
+ },
+ {
+ "sku": "HRD-000-632",
+ "name": "bolt",
+ "sold": 4123.0,
+ "in-stock": 144,
+ "on-order": 42
+ },
+ {
+ "sku": "GRO-000-2331",
+ "name": "water",
+ "sold": 17.0,
+ "in-stock": 14,
+ "on-order": 2
+ }
+ ]
+ },
+ "data": {
+ "item": [
+ {
+ "sku": "GRO-000-533",
+ "name": "fish",
+ "sold": 1321.0,
+ "in-stock": 45,
+ "on-order": 1
+ }
+ ]
+ },
+ "data": {
+ "item": [
+ "gum",
+ "rope",
+ "ladder",
+ "bolt",
+ "water"
+ ]
+ },
+ "cost": 425,
+ "cost": 455
+ }
+}
diff --git a/0.4.6/tests/core/saved/test_10.T.err b/0.4.6/tests/core/saved/test_10.T.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_10.T.err
diff --git a/0.4.6/tests/core/saved/test_10.T.out b/0.4.6/tests/core/saved/test_10.T.out
new file mode 100644
index 0000000..21fa81b
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_10.T.out
@@ -0,0 +1,48 @@
+bluegreenredyellowdefault
+bold bold-ul triple inv-ul underline plain
+Item  Total Sold In Stock On Order SKU
+gum 1412 54 10 GRO-000-415
+rope 85 4 2 HRD-000-212
+ladder 0 2 1 HRD-000-517
+bolt 4123 144 42 HRD-000-632
+water 17 14 2 GRO-000-2331
+
+
+Item 'gum':
+ Total sold: 1412.0
+ In stock: 54
+ On order: 10
+ SKU: GRO-000-415
+Item 'rope':
+ Total sold: 85.0
+ In stock: 4
+ On order: 2
+ SKU: HRD-000-212
+Item 'ladder':
+ Total sold: 0
+ In stock: 2
+ On order: 1
+ SKU: HRD-000-517
+Item 'bolt':
+ Total sold: 4123.0
+ In stock: 144
+ On order: 42
+ SKU: HRD-000-632
+Item 'water':
+ Total sold: 17.0
+ In stock: 14
+ On order: 2
+ SKU: GRO-000-2331
+Item 'fish':
+ Total sold: 1321.0
+ In stock: 45
+ On order: 1
+ SKU: GRO-000-533
+Item: gum
+Item: rope
+Item: ladder
+Item: bolt
+Item: water
+XXXXXXXX
+X XCost: 425
+X XCost: 455
diff --git a/0.4.6/tests/core/saved/test_10.X.err b/0.4.6/tests/core/saved/test_10.X.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_10.X.err
diff --git a/0.4.6/tests/core/saved/test_10.X.out b/0.4.6/tests/core/saved/test_10.X.out
new file mode 100644
index 0000000..49c6dd8
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_10.X.out
@@ -0,0 +1 @@
+<top __version="3.1.4"><data test="value"><data test2="value2">bold</data><data>bold-ul</data><data>triple</data><data>inv-ul</data><data>underline</data><data>plain</data><item><sku test3="value3" key="key">GRO-000-415</sku><name key="key">gum</name><sold>1412</sold><in-stock>54</in-stock><on-order>10</on-order></item><item><sku test3="value3" key="key">HRD-000-212</sku><name key="key">rope</name><sold>85</sold><in-stock>4</in-stock><on-order>2</on-order></item><item><sku test3="value3" key="key">HRD-000-517</sku><name key="key">ladder</name><sold>0</sold><in-stock>2</in-stock><on-order>1</on-order></item><item><sku test3="value3" key="key">HRD-000-632</sku><name key="key">bolt</name><sold>4123</sold><in-stock>144</in-stock><on-order>42</on-order></item><item><sku test3="value3" key="key">GRO-000-2331</sku><name key="key">water</name><sold>17</sold><in-stock>14</in-stock><on-order>2</on-order></item></data><data><item><sku key="key">GRO-000-415</sku><name key="key">gum</name><sold>1412.0</sold><in-stock>54</in-stock><on-order>10</on-order></item><item><sku key="key">HRD-000-212</sku><name key="key">rope</name><sold>85.0</sold><in-stock>4</in-stock><on-order>2</on-order></item><item><sku key="key">HRD-000-517</sku><name key="key">ladder</name><sold>0</sold><in-stock>2</in-stock><on-order>1</on-order></item><item><sku key="key">HRD-000-632</sku><name key="key">bolt</name><sold>4123.0</sold><in-stock>144</in-stock><on-order>42</on-order></item><item><sku key="key">GRO-000-2331</sku><name key="key">water</name><sold>17.0</sold><in-stock>14</in-stock><on-order>2</on-order></item></data><data><item><sku key="key">GRO-000-533</sku><name key="key">fish</name><sold>1321.0</sold><in-stock>45</in-stock><on-order>1</on-order></item></data><data><item test4="value4">gum</item><item test4="value4">rope</item><item test4="value4">ladder</item><item test4="value4">bolt</item><item test4="value4">water</item></data><cost>425</cost><cost>455</cost></top> \ No newline at end of file
diff --git a/0.4.6/tests/core/saved/test_10.XP.err b/0.4.6/tests/core/saved/test_10.XP.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_10.XP.err
diff --git a/0.4.6/tests/core/saved/test_10.XP.out b/0.4.6/tests/core/saved/test_10.XP.out
new file mode 100644
index 0000000..33c88d9
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_10.XP.out
@@ -0,0 +1,100 @@
+<top __version="3.1.4">
+ <data test="value">
+ <data test2="value2">bold</data>
+ <data>bold-ul</data>
+ <data>triple</data>
+ <data>inv-ul</data>
+ <data>underline</data>
+ <data>plain</data>
+ <item>
+ <sku test3="value3" key="key">GRO-000-415</sku>
+ <name key="key">gum</name>
+ <sold>1412</sold>
+ <in-stock>54</in-stock>
+ <on-order>10</on-order>
+ </item>
+ <item>
+ <sku test3="value3" key="key">HRD-000-212</sku>
+ <name key="key">rope</name>
+ <sold>85</sold>
+ <in-stock>4</in-stock>
+ <on-order>2</on-order>
+ </item>
+ <item>
+ <sku test3="value3" key="key">HRD-000-517</sku>
+ <name key="key">ladder</name>
+ <sold>0</sold>
+ <in-stock>2</in-stock>
+ <on-order>1</on-order>
+ </item>
+ <item>
+ <sku test3="value3" key="key">HRD-000-632</sku>
+ <name key="key">bolt</name>
+ <sold>4123</sold>
+ <in-stock>144</in-stock>
+ <on-order>42</on-order>
+ </item>
+ <item>
+ <sku test3="value3" key="key">GRO-000-2331</sku>
+ <name key="key">water</name>
+ <sold>17</sold>
+ <in-stock>14</in-stock>
+ <on-order>2</on-order>
+ </item>
+ </data>
+ <data>
+ <item>
+ <sku key="key">GRO-000-415</sku>
+ <name key="key">gum</name>
+ <sold>1412.0</sold>
+ <in-stock>54</in-stock>
+ <on-order>10</on-order>
+ </item>
+ <item>
+ <sku key="key">HRD-000-212</sku>
+ <name key="key">rope</name>
+ <sold>85.0</sold>
+ <in-stock>4</in-stock>
+ <on-order>2</on-order>
+ </item>
+ <item>
+ <sku key="key">HRD-000-517</sku>
+ <name key="key">ladder</name>
+ <sold>0</sold>
+ <in-stock>2</in-stock>
+ <on-order>1</on-order>
+ </item>
+ <item>
+ <sku key="key">HRD-000-632</sku>
+ <name key="key">bolt</name>
+ <sold>4123.0</sold>
+ <in-stock>144</in-stock>
+ <on-order>42</on-order>
+ </item>
+ <item>
+ <sku key="key">GRO-000-2331</sku>
+ <name key="key">water</name>
+ <sold>17.0</sold>
+ <in-stock>14</in-stock>
+ <on-order>2</on-order>
+ </item>
+ </data>
+ <data>
+ <item>
+ <sku key="key">GRO-000-533</sku>
+ <name key="key">fish</name>
+ <sold>1321.0</sold>
+ <in-stock>45</in-stock>
+ <on-order>1</on-order>
+ </item>
+ </data>
+ <data>
+ <item test4="value4">gum</item>
+ <item test4="value4">rope</item>
+ <item test4="value4">ladder</item>
+ <item test4="value4">bolt</item>
+ <item test4="value4">water</item>
+ </data>
+ <cost>425</cost>
+ <cost>455</cost>
+</top>
diff --git a/0.4.6/tests/core/saved/test_10.err b/0.4.6/tests/core/saved/test_10.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_10.err
diff --git a/0.4.6/tests/core/saved/test_10.out b/0.4.6/tests/core/saved/test_10.out
new file mode 100644
index 0000000..c2ad7a0
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_10.out
@@ -0,0 +1,38 @@
+Item Total Sold In Stock On Order SKU
+gum 1412 54 10 GRO-000-415
+rope 85 4 2 HRD-000-212
+ladder 0 2 1 HRD-000-517
+bolt 4123 144 42 HRD-000-632
+water 17 14 2 GRO-000-2331
+
+
+Item 'gum':
+ Total sold: 1412.0
+ In stock: 54
+ On order: 10
+ SKU: GRO-000-415
+Item 'rope':
+ Total sold: 85.0
+ In stock: 4
+ On order: 2
+ SKU: HRD-000-212
+Item 'ladder':
+ Total sold: 0
+ In stock: 2
+ On order: 1
+ SKU: HRD-000-517
+Item 'bolt':
+ Total sold: 4123.0
+ In stock: 144
+ On order: 42
+ SKU: HRD-000-632
+Item 'water':
+ Total sold: 17.0
+ In stock: 14
+ On order: 2
+ SKU: GRO-000-2331
+Item 'fish':
+ Total sold: 1321.0
+ In stock: 45
+ On order: 1
+ SKU: GRO-000-533
diff --git a/0.4.6/tests/core/saved/test_11.E.err b/0.4.6/tests/core/saved/test_11.E.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_11.E.err
diff --git a/0.4.6/tests/core/saved/test_11.E.out b/0.4.6/tests/core/saved/test_11.E.out
new file mode 100644
index 0000000..9fd70fa
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_11.E.out
@@ -0,0 +1,26 @@
+op create: [] []
+op version: [] [3.1.4]
+op open_container: [top] []
+op create: [] []
+{{<14>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-status [animal-status@42 animal="snake" state="loose"] The snake is loose}}
+{{test-program: }}
+{{The snake is loose}}
+
+op create: [] []
+{{<22>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-consumed [animal-consumed@42 animal="snake" pet="hamster"] My snake ate your hamster}}
+{{test-program: }}
+{{My snake ate your hamster}}
+
+op create: [] []
+{{<29>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-talk [animal-talk@42 count="1" animal="owl" quote="\"e=m\\c[2\]\""] 1 owl said "e=m\c[2]"}}
+{{test-program: }}
+{{1 owl said "e=m\c[2]"}}
+
+op create: [] []
+{{<165>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 ID47 [ID47@32473 iut="3" event-source="application" event-id="1011"] An application 1011 log entry}}
+{{test-program: }}
+{{An application 1011 log entry}}
+
+op close_container: [top] []
+op finish: [] []
+op flush: [] []
diff --git a/0.4.6/tests/core/saved/test_11.H.err b/0.4.6/tests/core/saved/test_11.H.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_11.H.err
diff --git a/0.4.6/tests/core/saved/test_11.H.out b/0.4.6/tests/core/saved/test_11.H.out
new file mode 100644
index 0000000..0786c34
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_11.H.out
@@ -0,0 +1,16 @@
+{{<14>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-status [animal-status@42 animal="snake" state="loose"] The snake is loose}}
+{{test-program: }}
+{{The snake is loose}}
+
+{{<22>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-consumed [animal-consumed@42 animal="snake" pet="hamster"] My snake ate your hamster}}
+{{test-program: }}
+{{My snake ate your hamster}}
+
+{{<29>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-talk [animal-talk@42 count="1" animal="owl" quote="\"e=m\\c[2\]\""] 1 owl said "e=m\c[2]"}}
+{{test-program: }}
+{{1 owl said "e=m\c[2]"}}
+
+{{<165>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 ID47 [ID47@32473 iut="3" event-source="application" event-id="1011"] An application 1011 log entry}}
+{{test-program: }}
+{{An application 1011 log entry}}
+
diff --git a/0.4.6/tests/core/saved/test_11.HIPx.err b/0.4.6/tests/core/saved/test_11.HIPx.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_11.HIPx.err
diff --git a/0.4.6/tests/core/saved/test_11.HIPx.out b/0.4.6/tests/core/saved/test_11.HIPx.out
new file mode 100644
index 0000000..8b726f4
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_11.HIPx.out
@@ -0,0 +1,16 @@
+{{<14>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-status [animal-status@42 animal="" state=""] The snake is loose}}
+{{test-program: }}
+{{The snake is loose}}
+
+{{<22>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-consumed [animal-consumed@42 animal="" pet=""] My snake ate your hamster}}
+{{test-program: }}
+{{My snake ate your hamster}}
+
+{{<29>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-talk [animal-talk@42 count="" animal="" quote=""] 1 owl said "e=m\c[2]"}}
+{{test-program: }}
+{{1 owl said "e=m\c[2]"}}
+
+{{<165>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 ID47 [ID47@32473 iut="" event-source="" event-id=""] An application 1011 log entry}}
+{{test-program: }}
+{{An application 1011 log entry}}
+
diff --git a/0.4.6/tests/core/saved/test_11.HP.err b/0.4.6/tests/core/saved/test_11.HP.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_11.HP.err
diff --git a/0.4.6/tests/core/saved/test_11.HP.out b/0.4.6/tests/core/saved/test_11.HP.out
new file mode 100644
index 0000000..0786c34
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_11.HP.out
@@ -0,0 +1,16 @@
+{{<14>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-status [animal-status@42 animal="snake" state="loose"] The snake is loose}}
+{{test-program: }}
+{{The snake is loose}}
+
+{{<22>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-consumed [animal-consumed@42 animal="snake" pet="hamster"] My snake ate your hamster}}
+{{test-program: }}
+{{My snake ate your hamster}}
+
+{{<29>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-talk [animal-talk@42 count="1" animal="owl" quote="\"e=m\\c[2\]\""] 1 owl said "e=m\c[2]"}}
+{{test-program: }}
+{{1 owl said "e=m\c[2]"}}
+
+{{<165>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 ID47 [ID47@32473 iut="3" event-source="application" event-id="1011"] An application 1011 log entry}}
+{{test-program: }}
+{{An application 1011 log entry}}
+
diff --git a/0.4.6/tests/core/saved/test_11.J.err b/0.4.6/tests/core/saved/test_11.J.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_11.J.err
diff --git a/0.4.6/tests/core/saved/test_11.J.out b/0.4.6/tests/core/saved/test_11.J.out
new file mode 100644
index 0000000..4eb7105
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_11.J.out
@@ -0,0 +1,18 @@
+{{<14>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-status [animal-status@42 animal="snake" state="loose"] The snake is loose}}
+{{test-program: }}
+{{The snake is loose}}
+
+{{<22>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-consumed [animal-consumed@42 animal="snake" pet="hamster"] My snake ate your hamster}}
+{{test-program: }}
+{{My snake ate your hamster}}
+
+{{<29>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-talk [animal-talk@42 count="1" animal="owl" quote="\"e=m\\c[2\]\""] 1 owl said "e=m\c[2]"}}
+{{test-program: }}
+{{1 owl said "e=m\c[2]"}}
+
+{{<165>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 ID47 [ID47@32473 iut="3" event-source="application" event-id="1011"] An application 1011 log entry}}
+{{test-program: }}
+{{An application 1011 log entry}}
+
+{"__version": "3.1.4", "top": {}
+}
diff --git a/0.4.6/tests/core/saved/test_11.JP.err b/0.4.6/tests/core/saved/test_11.JP.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_11.JP.err
diff --git a/0.4.6/tests/core/saved/test_11.JP.out b/0.4.6/tests/core/saved/test_11.JP.out
new file mode 100644
index 0000000..f82139b
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_11.JP.out
@@ -0,0 +1,22 @@
+{{<14>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-status [animal-status@42 animal="snake" state="loose"] The snake is loose}}
+{{test-program: }}
+{{The snake is loose}}
+
+{{<22>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-consumed [animal-consumed@42 animal="snake" pet="hamster"] My snake ate your hamster}}
+{{test-program: }}
+{{My snake ate your hamster}}
+
+{{<29>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-talk [animal-talk@42 count="1" animal="owl" quote="\"e=m\\c[2\]\""] 1 owl said "e=m\c[2]"}}
+{{test-program: }}
+{{1 owl said "e=m\c[2]"}}
+
+{{<165>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 ID47 [ID47@32473 iut="3" event-source="application" event-id="1011"] An application 1011 log entry}}
+{{test-program: }}
+{{An application 1011 log entry}}
+
+{
+ "__version": "3.1.4",
+ "top": {
+
+ }
+}
diff --git a/0.4.6/tests/core/saved/test_11.T.err b/0.4.6/tests/core/saved/test_11.T.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_11.T.err
diff --git a/0.4.6/tests/core/saved/test_11.T.out b/0.4.6/tests/core/saved/test_11.T.out
new file mode 100644
index 0000000..0786c34
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_11.T.out
@@ -0,0 +1,16 @@
+{{<14>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-status [animal-status@42 animal="snake" state="loose"] The snake is loose}}
+{{test-program: }}
+{{The snake is loose}}
+
+{{<22>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-consumed [animal-consumed@42 animal="snake" pet="hamster"] My snake ate your hamster}}
+{{test-program: }}
+{{My snake ate your hamster}}
+
+{{<29>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-talk [animal-talk@42 count="1" animal="owl" quote="\"e=m\\c[2\]\""] 1 owl said "e=m\c[2]"}}
+{{test-program: }}
+{{1 owl said "e=m\c[2]"}}
+
+{{<165>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 ID47 [ID47@32473 iut="3" event-source="application" event-id="1011"] An application 1011 log entry}}
+{{test-program: }}
+{{An application 1011 log entry}}
+
diff --git a/0.4.6/tests/core/saved/test_11.X.err b/0.4.6/tests/core/saved/test_11.X.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_11.X.err
diff --git a/0.4.6/tests/core/saved/test_11.X.out b/0.4.6/tests/core/saved/test_11.X.out
new file mode 100644
index 0000000..bb73a42
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_11.X.out
@@ -0,0 +1,17 @@
+{{<14>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-status [animal-status@42 animal="snake" state="loose"] The snake is loose}}
+{{test-program: }}
+{{The snake is loose}}
+
+{{<22>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-consumed [animal-consumed@42 animal="snake" pet="hamster"] My snake ate your hamster}}
+{{test-program: }}
+{{My snake ate your hamster}}
+
+{{<29>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-talk [animal-talk@42 count="1" animal="owl" quote="\"e=m\\c[2\]\""] 1 owl said "e=m\c[2]"}}
+{{test-program: }}
+{{1 owl said "e=m\c[2]"}}
+
+{{<165>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 ID47 [ID47@32473 iut="3" event-source="application" event-id="1011"] An application 1011 log entry}}
+{{test-program: }}
+{{An application 1011 log entry}}
+
+<top __version="3.1.4"></top> \ No newline at end of file
diff --git a/0.4.6/tests/core/saved/test_11.XP.err b/0.4.6/tests/core/saved/test_11.XP.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_11.XP.err
diff --git a/0.4.6/tests/core/saved/test_11.XP.out b/0.4.6/tests/core/saved/test_11.XP.out
new file mode 100644
index 0000000..46b5dd0
--- /dev/null
+++ b/0.4.6/tests/core/saved/test_11.XP.out
@@ -0,0 +1,18 @@
+{{<14>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-status [animal-status@42 animal="snake" state="loose"] The snake is loose}}
+{{test-program: }}
+{{The snake is loose}}
+
+{{<22>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-consumed [animal-consumed@42 animal="snake" pet="hamster"] My snake ate your hamster}}
+{{test-program: }}
+{{My snake ate your hamster}}
+
+{{<29>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-talk [animal-talk@42 count="1" animal="owl" quote="\"e=m\\c[2\]\""] 1 owl said "e=m\c[2]"}}
+{{test-program: }}
+{{1 owl said "e=m\c[2]"}}
+
+{{<165>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 ID47 [ID47@32473 iut="3" event-source="application" event-id="1011"] An application 1011 log entry}}
+{{test-program: }}
+{{An application 1011 log entry}}
+
+<top __version="3.1.4">
+</top>
diff --git a/0.4.6/tests/core/test_01.c b/0.4.6/tests/core/test_01.c
new file mode 100644
index 0000000..f7fe61e
--- /dev/null
+++ b/0.4.6/tests/core/test_01.c
@@ -0,0 +1,177 @@
+/*
+ * Copyright (c) 2014, Juniper Networks, Inc.
+ * All rights reserved.
+ * This SOFTWARE is licensed under the LICENSE provided in the
+ * ../Copyright file. By downloading, installing, copying, or otherwise
+ * using the SOFTWARE, you agree to be bound by the terms of that
+ * LICENSE.
+ * Phil Shafer, July 2014
+ */
+
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include "xo.h"
+
+int
+main (int argc, char **argv)
+{
+ static char base_grocery[] = "GRO";
+ static char base_hardware[] = "HRD";
+ struct item {
+ const char *i_title;
+ int i_sold;
+ int i_instock;
+ int i_onorder;
+ const char *i_sku_base;
+ int i_sku_num;
+ };
+ struct item list[] = {
+ { "gum", 1412, 54, 10, base_grocery, 415 },
+ { "rope", 85, 4, 2, base_hardware, 212 },
+ { "ladder", 0, 2, 1, base_hardware, 517 },
+ { "bolt", 4123, 144, 42, base_hardware, 632 },
+ { "water", 17, 14, 2, base_grocery, 2331 },
+ { NULL, 0, 0, 0, NULL, 0 }
+ };
+ struct item list2[] = {
+ { "fish", 1321, 45, 1, base_grocery, 533 },
+ { NULL, 0, 0, 0, NULL, 0 }
+ };
+ struct item *ip;
+ xo_info_t info[] = {
+ { "in-stock", "number", "Number of items in stock" },
+ { "name", "string", "Name of the item" },
+ { "on-order", "number", "Number of items on order" },
+ { "sku", "string", "Stock Keeping Unit" },
+ { "sold", "number", "Number of items sold" },
+ { XO_INFO_NULL },
+ };
+
+ argc = xo_parse_args(argc, argv);
+ if (argc < 0)
+ return 1;
+
+ for (argc = 1; argv[argc]; argc++) {
+ if (strcmp(argv[argc], "xml") == 0)
+ xo_set_style(NULL, XO_STYLE_XML);
+ else if (strcmp(argv[argc], "json") == 0)
+ xo_set_style(NULL, XO_STYLE_JSON);
+ else if (strcmp(argv[argc], "text") == 0)
+ xo_set_style(NULL, XO_STYLE_TEXT);
+ else if (strcmp(argv[argc], "html") == 0)
+ xo_set_style(NULL, XO_STYLE_HTML);
+ else if (strcmp(argv[argc], "pretty") == 0)
+ xo_set_flags(NULL, XOF_PRETTY);
+ else if (strcmp(argv[argc], "xpath") == 0)
+ xo_set_flags(NULL, XOF_XPATH);
+ else if (strcmp(argv[argc], "info") == 0)
+ xo_set_flags(NULL, XOF_INFO);
+ else if (strcmp(argv[argc], "error") == 0) {
+ close(-1);
+ xo_err(1, "error detected");
+ }
+ }
+
+ xo_set_info(NULL, info, -1);
+ xo_set_flags(NULL, XOF_KEYS);
+
+ xo_open_container_h(NULL, "top");
+
+ xo_emit("Connecting to {:host}.{:domain}...\n", "my-box", "example.com");
+
+ xo_attr("test", "value");
+ xo_open_container("data");
+ xo_open_list("item");
+ xo_attr("test2", "value2");
+
+ xo_emit("{T:Item/%-10s}{T:Total Sold/%12s}{T:In Stock/%12s}"
+ "{T:On Order/%12s}{T:SKU/%5s}\n");
+
+ for (ip = list; ip->i_title; ip++) {
+ xo_open_instance("item");
+ xo_attr("test3", "value3");
+
+ xo_emit("{keq:sku/%s-%u/%s-000-%u}"
+ "{k:name/%-10s/%s}{n:sold/%12u/%u}{:in-stock/%12u/%u}"
+ "{:on-order/%12u/%u}{qkd:sku/%5s-000-%u/%s-000-%u}\n",
+ ip->i_sku_base, ip->i_sku_num,
+ ip->i_title, ip->i_sold, ip->i_instock, ip->i_onorder,
+ ip->i_sku_base, ip->i_sku_num);
+
+ xo_close_instance("item");
+ }
+
+ xo_close_list("item");
+ xo_close_container("data");
+
+ xo_emit("\n\n");
+
+ xo_open_container("data2");
+ xo_open_list("item");
+
+ for (ip = list; ip->i_title; ip++) {
+ xo_open_instance("item");
+
+ xo_emit("{keq:sku/%s-%u/%s-000-%u}", ip->i_sku_base, ip->i_sku_num);
+ xo_emit("{L:Item} '{k:name/%s}':\n", ip->i_title);
+ xo_emit("{P: }{L:Total sold}: {n:sold/%u%s}\n",
+ ip->i_sold, ip->i_sold ? ".0" : "");
+ xo_emit("{P: }{Lcw:In stock}{:in-stock/%u}\n", ip->i_instock);
+ xo_emit("{P: }{Lcw:On order}{:on-order/%u}\n", ip->i_onorder);
+ xo_emit("{P: }{L:SKU}: {qkd:sku/%s-000-%u}\n",
+ ip->i_sku_base, ip->i_sku_num);
+
+ xo_close_instance("item");
+ }
+
+ xo_close_list("item");
+ xo_close_container("data2");
+
+ xo_open_container("data3");
+ xo_open_list("item");
+
+ for (ip = list2; ip->i_title; ip++) {
+ xo_open_instance("item");
+
+ xo_emit("{keq:sku/%s-%u/%s-000-%u}", ip->i_sku_base, ip->i_sku_num);
+ xo_emit("{L:Item} '{k:name/%s}':\n", ip->i_title);
+ xo_emit("{P: }{L:Total sold}: {n:sold/%u%s}\n",
+ ip->i_sold, ip->i_sold ? ".0" : "");
+ xo_emit("{P: }{Lcw:In stock}{:in-stock/%u}\n", ip->i_instock);
+ xo_emit("{P: }{Lcw:On order}{:on-order/%u}\n", ip->i_onorder);
+ xo_emit("{P: }{L:SKU}: {qkd:sku/%s-000-%u}\n",
+ ip->i_sku_base, ip->i_sku_num);
+
+ xo_close_instance("item");
+ }
+
+ xo_close_list("item");
+ xo_close_container("data3");
+
+ xo_open_container("data4");
+ xo_open_list("item");
+
+ for (ip = list; ip->i_title; ip++) {
+ xo_attr("test4", "value4");
+ xo_emit("{Lwc:Item}{l:item}\n", ip->i_title);
+ }
+
+ xo_close_list("item");
+ xo_close_container("data4");
+
+ xo_emit("X{P:}X", "epic fail");
+ xo_emit("X{T:}X", "epic fail");
+ xo_emit("X{N:}X", "epic fail");
+ xo_emit("X{L:}X\n", "epic fail");
+
+ xo_emit("X{P: }X{Lwc:Cost}{:cost/%u}\n", 425);
+ xo_emit("X{P:/%30s}X{Lwc:Cost}{:cost/%u}\n", "", 455);
+
+ xo_close_container_h(NULL, "top");
+
+ xo_finish();
+
+ return 0;
+}
diff --git a/0.4.6/tests/core/test_02.c b/0.4.6/tests/core/test_02.c
new file mode 100644
index 0000000..abddcf2
--- /dev/null
+++ b/0.4.6/tests/core/test_02.c
@@ -0,0 +1,147 @@
+/*
+ * Copyright (c) 2014, Juniper Networks, Inc.
+ * All rights reserved.
+ * This SOFTWARE is licensed under the LICENSE provided in the
+ * ../Copyright file. By downloading, installing, copying, or otherwise
+ * using the SOFTWARE, you agree to be bound by the terms of that
+ * LICENSE.
+ * Phil Shafer, July 2014
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdint.h>
+#include <string.h>
+
+#include "xo.h"
+
+#include "xo_humanize.h"
+
+int
+main (int argc, char **argv)
+{
+ argc = xo_parse_args(argc, argv);
+ if (argc < 0)
+ return 1;
+
+ for (argc = 1; argv[argc]; argc++) {
+ if (strcmp(argv[argc], "xml") == 0)
+ xo_set_style(NULL, XO_STYLE_XML);
+ else if (strcmp(argv[argc], "json") == 0)
+ xo_set_style(NULL, XO_STYLE_JSON);
+ else if (strcmp(argv[argc], "text") == 0)
+ xo_set_style(NULL, XO_STYLE_TEXT);
+ else if (strcmp(argv[argc], "html") == 0)
+ xo_set_style(NULL, XO_STYLE_HTML);
+ else if (strcmp(argv[argc], "pretty") == 0)
+ xo_set_flags(NULL, XOF_PRETTY);
+ else if (strcmp(argv[argc], "xpath") == 0)
+ xo_set_flags(NULL, XOF_XPATH);
+ else if (strcmp(argv[argc], "info") == 0)
+ xo_set_flags(NULL, XOF_INFO);
+ }
+
+ xo_set_flags(NULL, XOF_UNITS); /* Always test w/ this */
+
+ xo_open_container_h(NULL, "top");
+
+ xo_open_container("data");
+
+ xo_emit("We are {{emit}}{{ting}} some {:what}\n", "braces");
+
+ xo_message("abcdef");
+ close(-1);
+ xo_message_e("abcdef");
+
+ xo_message("improper use of profanity; %s; %s",
+ "ten yard penalty", "first down");
+
+ xo_emit("length {:length/%6.6s}\n", "abcdefghijklmnopqrstuvwxyz");
+
+ close(-1);
+ xo_emit("close {:fd/%d} returned {:error/%m} {:test}\n", -1, "good");
+ close(-1);
+ xo_emit("close {:fd/%d} returned {:error/%6.6m} {:test}\n", -1, "good");
+
+
+ xo_message("improper use of profanity; %s; %s",
+ "ten yard penalty", "first down");
+
+ xo_emit(" {:lines/%7ju} {:words/%7ju} "
+ "{:characters/%7ju} {d:filename/%s}\n",
+ 20, 30, 40, "file");
+
+ int i;
+ for (i = 0; i < 5; i++)
+ xo_emit("{lw:bytes/%d}{Np:byte,bytes}\n", i);
+
+
+ xo_emit("{:mbuf-current/%u}/{:mbuf-cache/%u}/{:mbuf-total/%u} "
+ "{N:mbufs <&> in use (current\\/cache\\/total)}\n",
+ 10, 20, 30);
+
+ xo_emit("{:distance/%u}{Uw:miles} from {:location}\n", 50, "Boston");
+ xo_emit("{:memory/%u}{U:k} left out of {:total/%u}{U:kb}\n", 64, 640);
+ xo_emit("{:memory/%u}{U:/%s} left out of {:total/%u}{U:/%s}\n",
+ 64, "k", 640, "kilobytes");
+
+ xo_emit("{,title:/before%safter:}\n", "working");
+
+ xo_emit("{,display,white,colon:some/%s}"
+ "{,value:ten/%ju}{,value:eleven/%ju}\n",
+ "string", (uintmax_t) 10, (uintmax_t) 11);
+
+ xo_emit("{:unknown/%u} "
+ "{N:/packet%s here\\/there\\/everywhere}\n",
+ 1010, "s");
+
+ xo_emit("{:unknown/%u} "
+ "{,note:/packet%s here\\/there\\/everywhere}\n",
+ 1010, "s");
+
+ xo_emit("({[:/%d}{n:min/15}/{n:cur/20}/{:max/%d}{]:})\n", 30, 125);
+ xo_emit("({[:30}{:min/%u}/{:cur/%u}/{:max/%u}{]:})\n", 15, 20, 125);
+ xo_emit("({[:-30}{n:min/15}/{n:cur/20}/{n:max/125}{]:})\n");
+ xo_emit("({[:}{:min/%u}/{:cur/%u}/{:max/%u}{]:/%d})\n", 15, 20, 125, -30);
+
+ xo_emit("Humanize: {h:val1/%u}, {h,hn-space:val2/%u}, "
+ "{h,hn-decimal:val3/%u}, {h,hn-1000:val4/%u}, "
+ "{h,hn-decimal:val5/%u}\n",
+ 21,
+ 57 * 1024,
+ 96 * 1024 * 1024,
+ (42 * 1024 + 420) * 1024,
+ 1342172800);
+
+ xo_open_list("flag");
+ xo_emit("{lq:flag/one} {lq:flag/two} {lq:flag/three}\n");
+ xo_close_list("flag");
+
+ xo_emit("{n:works/%s}\n", NULL);
+
+ xo_emit("{e:empty-tag/}");
+ xo_emit("1:{qt:t1/%*d} 2:{qt:t2/test%-*u} "
+ "3:{qt:t3/%10sx} 4:{qt:t4/x%-*.*s}\n",
+ 6, 1000, 8, 5000, "ten-long", 10, 10, "test");
+ xo_emit("{E:this is an error}\n");
+ xo_emit("{E:/%s more error%s}\n", "two", "s" );
+ xo_emit("{W:this is an warning}\n");
+ xo_emit("{W:/%s more warning%s}\n", "two", "s" );
+ xo_emit("{L:/V1\\/V2 packet%s}: {:count/%u}\n", "s", 10);
+
+ int test = 4;
+ xo_emit("{:test/%04d} {L:/tr%s}\n", test, (test == 1) ? "y" : "ies");
+
+ xo_message("improper use of profanity; %s; %s",
+ "ten yard penalty", "first down");
+
+ xo_error("Shut 'er down, Clancey! She's a-pumpin' mud! <>!,\"!<>\n");
+
+ xo_close_container("data");
+
+ xo_close_container_h(NULL, "top");
+
+ xo_finish();
+
+ return 0;
+}
diff --git a/0.4.6/tests/core/test_03.c b/0.4.6/tests/core/test_03.c
new file mode 100644
index 0000000..0ab9699
--- /dev/null
+++ b/0.4.6/tests/core/test_03.c
@@ -0,0 +1,61 @@
+/*
+ * Copyright (c) 2014, Juniper Networks, Inc.
+ * All rights reserved.
+ * This SOFTWARE is licensed under the LICENSE provided in the
+ * ../Copyright file. By downloading, installing, copying, or otherwise
+ * using the SOFTWARE, you agree to be bound by the terms of that
+ * LICENSE.
+ * Phil Shafer, July 2014
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "xo.h"
+
+xo_info_t info[] = {
+ { "employee", "object", "Employee data" },
+ { "first-name", "string", "First name of employee" },
+ { "last-name", "string", "Last name of employee" },
+ { "department", "number", "Department number" },
+};
+int info_count = (sizeof(info) / sizeof(info[0]));
+
+int
+main (int argc, char **argv)
+{
+ struct employee {
+ const char *e_first;
+ const char *e_last;
+ unsigned e_dept;
+ } employees[] = {
+ { "Terry", "Jones", 660 },
+ { "Leslie", "Patterson", 341 },
+ { "Ashley", "Smith", 1440 },
+ { NULL, NULL }
+ }, *ep = employees;
+
+ argc = xo_parse_args(argc, argv);
+ if (argc < 0)
+ return 1;
+
+ xo_set_info(NULL, info, info_count);
+
+ xo_open_container("employees");
+ xo_open_list("employee");
+
+ for ( ; ep->e_first; ep++) {
+ xo_open_instance("employee");
+ xo_emit("{:first-name} {:last-name} works in dept #{:department/%u}\n",
+ ep->e_first, ep->e_last, ep->e_dept);
+ xo_close_instance("employee");
+ }
+
+ xo_close_list("employee");
+ xo_close_container("employees");
+
+ xo_finish();
+
+ return 0;
+}
diff --git a/0.4.6/tests/core/test_04.c b/0.4.6/tests/core/test_04.c
new file mode 100644
index 0000000..5e25302
--- /dev/null
+++ b/0.4.6/tests/core/test_04.c
@@ -0,0 +1,63 @@
+/*
+ * Copyright (c) 2014, Juniper Networks, Inc.
+ * All rights reserved.
+ * This SOFTWARE is licensed under the LICENSE provided in the
+ * ../Copyright file. By downloading, installing, copying, or otherwise
+ * using the SOFTWARE, you agree to be bound by the terms of that
+ * LICENSE.
+ * Phil Shafer, July 2014
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "xo.h"
+
+xo_info_t info[] = {
+ { "employee", "object", "Employee data" },
+ { "first-name", "string", "First name of employee" },
+ { "last-name", "string", "Last name of employee" },
+ { "department", "number", "Department number" },
+};
+int info_count = (sizeof(info) / sizeof(info[0]));
+
+int
+main (int argc, char **argv)
+{
+ struct employee {
+ const char *e_first;
+ const char *e_last;
+ unsigned e_dept;
+ } employees[] = {
+ { "Terry", "Jones", 660 },
+ { "Leslie", "Patterson", 341 },
+ { "Ashley", "Smith", 1440 },
+ { NULL, NULL }
+ }, *ep = employees;
+
+ argc = xo_parse_args(argc, argv);
+ if (argc < 0)
+ return 1;
+
+ xo_set_info(NULL, info, info_count);
+
+ xo_open_container("employees");
+ xo_open_list("employee");
+
+ xo_emit("{T:Last Name/%-12s}{T:First Name/%-14s}{T:Department/%s}\n");
+ for ( ; ep->e_first; ep++) {
+ xo_open_instance("employee");
+ xo_emit("{:first-name/%-12s/%s}{:last-name/%-14s/%s}"
+ "{:department/%8u/%u}\n",
+ ep->e_first, ep->e_last, ep->e_dept);
+ xo_close_instance("employee");
+ }
+
+ xo_close_list("employee");
+ xo_close_container("employees");
+
+ xo_finish();
+
+ return 0;
+}
diff --git a/0.4.6/tests/core/test_05.c b/0.4.6/tests/core/test_05.c
new file mode 100644
index 0000000..07de037
--- /dev/null
+++ b/0.4.6/tests/core/test_05.c
@@ -0,0 +1,143 @@
+/*
+ * Copyright (c) 2014, Juniper Networks, Inc.
+ * All rights reserved.
+ * This SOFTWARE is licensed under the LICENSE provided in the
+ * ../Copyright file. By downloading, installing, copying, or otherwise
+ * using the SOFTWARE, you agree to be bound by the terms of that
+ * LICENSE.
+ * Phil Shafer, July 2014
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <wchar.h>
+
+#include "xo.h"
+#include "xo_config.h"
+
+#ifdef LIBXO_WCWIDTH
+#include "xo_wcwidth.h"
+#else /* LIBXO_WCWIDTH */
+#define xo_wcwidth(_x) wcwidth(_x)
+#endif /* LIBXO_WCWIDTH */
+
+xo_info_t info[] = {
+ { "employee", "object", "Employee data" },
+ { "first-name", "string", "First name of employee" },
+ { "last-name", "string", "Last name of employee" },
+ { "department", "number", "Department number" },
+ { "percent-time", "number", "Percentage of full & part time (%)" },
+};
+int info_count = (sizeof(info) / sizeof(info[0]));
+
+int
+main (int argc, char **argv)
+{
+ struct employee {
+ const char *e_first;
+ const char *e_nic;
+ const char *e_last;
+ unsigned e_dept;
+ unsigned e_percent;
+ } employees[] = {
+ { "Jim", "რეგტ", "გთხოვთ ახ", 431, 90 },
+ { "Terry", "<one", "Οὐχὶ ταὐτὰ παρίσταταί μοι Jones", 660, 90 },
+ { "Leslie", "Les", "Patterson", 341,60 },
+ { "Ashley", "Ash", "Meter & Smith", 1440, 40 },
+ { "0123456789", "0123456789", "012345678901234567890", 1440, 40 },
+ { "ახლა", "გაიარო", "საერთაშორისო", 123, 90 },
+ { "෴ණ්ණ෴෴ණ්ණ෴", "Mick",
+ "෴ණ්ණ෴෴ණ්ණ෴෴ණ්ණ෴෴෴", 110, 20 },
+ { NULL, NULL }
+ }, *ep = employees;
+ int rc, i;
+
+ argc = xo_parse_args(argc, argv);
+ if (argc < 0)
+ return 1;
+
+ xo_set_info(NULL, info, info_count);
+ xo_set_flags(NULL, XOF_COLUMNS);
+
+ xo_open_container("indian-languages");
+
+ xo_emit("{T:Sample text}\n");
+ xo_emit("This sample text was taken from the Punjabi Wikipedia "
+ "article on Lahore and transliterated into the Latin script.\n");
+
+ xo_emit("{T:Gurmukhi:}\n");
+ xo_emit("{:gurmukhi}\n",
+ "ਲਹੌਰ ਪਾਕਿਸਤਾਨੀ ਪੰਜਾਬ ਦੀ ਰਾਜਧਾਨੀ ਹੈ । ਲੋਕ ਗਿਣਤੀ ਦੇ ਨਾਲ ਕਰਾਚੀ ਤੋਂ ਬਾਅਦ ਲਹੌਰ ਦੂਜਾ ਸਭ ਤੋਂ ਵੱਡਾ ਸ਼ਹਿਰ ਹੈ । ਲਹੌਰ ਪਾਕਿਸਤਾਨ ਦਾ ਸਿਆਸੀ, ਰਹਤਲੀ ਤੇ ਪੜ੍ਹਾਈ ਦਾ ਗੜ੍ਹ ਹੈ ਅਤੇ ਇਸ ਲਈ ਇਹਨੂੰ ਪਾਕਿਸਤਾਨ ਦਾ ਦਿਲ ਵੀ ਕਿਹਾ ਜਾਂਦਾ ਹੈ । ਲਹੌਰ ਦਰਿਆ-ਏ-ਰਾਵੀ ਦੇ ਕੰਢੇ ਤੇ ਵਸਦਾ ਹੈ ਤੇ ਇਸਦੀ ਲੋਕ ਗਿਣਤੀ ਇੱਕ ਕਰੋੜ ਦੇ ਨੇੜੇ ਹੈ ।");
+
+
+ xo_emit("{T:Shahmukhi:}\n");
+ xo_emit("{:shahmukhi}\n",
+ "لہور پاکستانی پنجاب دا دارالحکومت اے۔ لوک گنتی دے نال کراچی توں بعد لہور دوجا سبھ توں وڈا شہر اے۔ لہور پاکستان دا سیاسی، رہتلی تے پڑھائی دا گڑھ اے تے اس لئی ایھنوں پاکستان دا دل وی کیھا جاندا اے۔ لہور دریاۓ راوی دے کنڈھے تے وسدا اے اسدی لوک گنتی اک کروڑ دے نیڑے اے ۔");
+
+ xo_emit("{T:Transliteration}:\n");
+ xo_emit("{:tranliteration}\n",
+ "lahor pākistān panjāb dā dārul hakūmat ē. lōk giṇtī dē nāḷ karācī tō᷈ bāad lahor dūjā sab tō᷈ vaḍḍā shahr ē. lahor pākistān dā siāsī, rahtalī tē paṛā̀ī dā gā́ṛ ē tē is laī ihnū᷈ pākistān dā dil vī kehā jāndā ē. lahor dariāē rāvī dē kanḍē tē vasdā ē. isdī lōk giṇtī ikk karōṛ dē nēṛē ē.");
+
+ xo_close_container("indian-languages");
+
+ xo_open_container("employees");
+
+ wchar_t wc[] = { L'෴', L'ණ', L'්', L'ණ', 0x17D2, L'෴', 0 };
+ for (i = 0; wc[i]; i++)
+ xo_emit("Wide char: {lq:wc/%lc - %#lx - %d}\n",
+ wc[i], (unsigned long) wc[i], xo_wcwidth(wc[i]));
+
+ wchar_t msg[] = { L'1', 0x034f, L'2', 0x20dd, 0 };
+ for (i = 0; msg[i]; i++)
+ xo_emit("Wide char: {lq:wc/%lc - %#lx - %d}\n",
+ msg[i], (unsigned long) msg[i], xo_wcwidth((int) msg[i]));
+ xo_emit("Cool: [{:fancy/%ls}]\n", msg);
+
+ xo_emit("Οὐχὶ ταὐτὰ παρίσταταί μοι {:v1/%s}, {:v2/%s}\n",
+ "γιγνώσκειν", "ὦ ἄνδρες ᾿Αθηναῖοι");
+
+ rc = xo_emit("გთხოვთ {:v1/%s} {:v2/%s}\n",
+ "ახლავე გაიაროთ რეგისტრაცია",
+ "Unicode-ის მეათე საერთაშორისო");
+ xo_emit("{Twc:Width}{:width/%d}\n", rc);
+
+ /* Okay, Sinhala is uber cool ... */
+ rc = xo_emit("[{:sinhala}]\n", "෴ණ්ණ෴");
+ xo_emit("{Twc:Width}{:width/%d}\n", rc);
+
+ rc = xo_emit("[{:sinhala}]\n", "෴");
+ xo_emit("{Twc:Width}{:width/%d}\n", rc);
+
+ rc = xo_emit("[{:sinhala/%-4..4s/%s}]\n", "෴ණ්ණ෴෴ණ්ණ෴");
+ xo_emit("{Twc:Width}{:width/%d}\n", rc);
+
+ xo_emit("[{:not-sinhala/%-4..4s/%s}]\n", "123456");
+
+ rc = xo_emit("[{:tag/%s}]\n", "ර්‍ඝ");
+ xo_emit("{Twc:Width}{:width/%d}\n", rc);
+
+ xo_open_list("employee");
+
+ xo_emit("{T:First Name/%-25s}{T:Last Name/%-14s}"
+ "{T:/%-12s}{T:Time (%)}\n", "Department");
+ for ( ; ep->e_first; ep++) {
+ xo_open_instance("employee");
+ xo_emit("{[:-25}{:first-name/%s} ({:nic-name/\"%s\"}){]:}"
+ "{:last-name/%-14..14s/%s}"
+ "{:department/%8u}{:percent-time/%8u}\n",
+ ep->e_first, ep->e_nic, ep->e_last, ep->e_dept, ep->e_percent);
+ if (ep->e_percent > 50) {
+ xo_attr("full-time", "%s", "honest & for true");
+ xo_emit("{e:benefits/%s}", "full");
+ }
+ xo_close_instance("employee");
+ }
+
+ xo_close_list("employee");
+ xo_close_container("employees");
+
+ xo_finish();
+
+ return 0;
+}
diff --git a/0.4.6/tests/core/test_06.c b/0.4.6/tests/core/test_06.c
new file mode 100644
index 0000000..82baab8
--- /dev/null
+++ b/0.4.6/tests/core/test_06.c
@@ -0,0 +1,63 @@
+/*
+ * Copyright (c) 2014, Juniper Networks, Inc.
+ * All rights reserved.
+ * This SOFTWARE is licensed under the LICENSE provided in the
+ * ../Copyright file. By downloading, installing, copying, or otherwise
+ * using the SOFTWARE, you agree to be bound by the terms of that
+ * LICENSE.
+ * Phil Shafer, July 2014
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "xo.h"
+
+xo_info_t info[] = {
+ { "employee", "object", "Employee data" },
+ { "first-name", "string", "First name of employee" },
+ { "last-name", "string", "Last name of employee" },
+ { "department", "number", "Department number" },
+};
+int info_count = (sizeof(info) / sizeof(info[0]));
+
+int
+main (int argc, char **argv)
+{
+ struct employee {
+ const char *e_first;
+ const char *e_last;
+ unsigned e_dept;
+ } employees[] = {
+ { "Terry", "Jones", 660 },
+ { "Leslie", "Patterson", 341 },
+ { "Ashley", "Smith", 1440 },
+ { NULL, NULL }
+ }, *ep = employees;
+
+ argc = xo_parse_args(argc, argv);
+ if (argc < 0)
+ return 1;
+
+ xo_set_info(NULL, info, info_count);
+
+ xo_set_flags(NULL, XOF_DTRT);
+
+ xo_open_container("employees");
+ xo_open_list("employee");
+
+ for ( ; ep->e_first; ep++) {
+ xo_open_instance("employee");
+ xo_emit("{:first-name} {:last-name} works in dept #{:department/%u}\n",
+ ep->e_first, ep->e_last, ep->e_dept);
+ xo_close_instance_d();
+ }
+
+ xo_close_list_d();
+ xo_close_container_d();
+
+ xo_finish();
+
+ return 0;
+}
diff --git a/0.4.6/tests/core/test_07.c b/0.4.6/tests/core/test_07.c
new file mode 100644
index 0000000..5b1ed57
--- /dev/null
+++ b/0.4.6/tests/core/test_07.c
@@ -0,0 +1,97 @@
+/*
+ * Copyright (c) 2014, Juniper Networks, Inc.
+ * All rights reserved.
+ * This SOFTWARE is licensed under the LICENSE provided in the
+ * ../Copyright file. By downloading, installing, copying, or otherwise
+ * using the SOFTWARE, you agree to be bound by the terms of that
+ * LICENSE.
+ * Phil Shafer, July 2014
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "xo.h"
+
+xo_info_t info[] = {
+ { "employee", "object", "Employee data" },
+ { "first-name", "string", "First name of employee" },
+ { "last-name", "string", "Last name of employee" },
+ { "department", "number", "Department number" },
+ { "percent-time", "number", "Percentage of full & part time (%)" },
+};
+int info_count = (sizeof(info) / sizeof(info[0]));
+
+int
+main (int argc, char **argv)
+{
+ struct employee {
+ const char *e_first;
+ const char *e_nic;
+ const char *e_last;
+ unsigned e_dept;
+ unsigned e_percent;
+ } employees[] = {
+ { "Jim", "რეგტ", "გთხოვთ ახ", 431, 90 },
+ { "Terry", "<one", "Οὐχὶ ταὐτὰ παρίσταταί μοι Jones", 660, 90 },
+ { "Leslie", "Les", "Patterson", 341,60 },
+ { "Ashley", "Ash", "Meter & Smith", 1440, 40 },
+ { "0123456789", "0123456789", "012345678901234567890", 1440, 40 },
+ { "ახლა", "გაიარო", "საერთაშორისო", 123, 90 },
+ { NULL, NULL }
+ }, *ep = employees;
+ int rc;
+
+ argc = xo_parse_args(argc, argv);
+ if (argc < 0)
+ return 1;
+
+ xo_set_info(NULL, info, info_count);
+ xo_set_flags(NULL, XOF_COLUMNS);
+
+ xo_open_container("employees");
+
+ xo_open_list("test");
+ xo_open_instance("test");
+ xo_emit("{ek:filename/%s}", NULL);
+ xo_close_instance("test");
+ xo_close_list("test");
+
+ rc = xo_emit("Οὐχὶ ταὐτὰ παρίσταταί μοι {:v1/%s}, {:v2/%s}\n",
+ "γιγνώσκειν", "ὦ ἄνδρες ᾿Αθηναῖοι");
+ rc = xo_emit("{:columns/%d}\n", rc);
+ xo_emit("{:columns/%d}\n", rc);
+
+ rc = xo_emit("გთხოვთ {:v1/%s} {:v2/%s}\n",
+ "ახლავე გაიაროთ რეგისტრაცია",
+ "Unicode-ის მეათე საერთაშორისო");
+ xo_emit("{:columns/%d}\n", rc);
+
+
+ rc = xo_emit("{T:First Name/%-25s}{T:Last Name/%-14s}"
+ "{T:/%-12s}{T:Time (%)}\n", "Department");
+ xo_emit("{:columns/%d}\n", rc);
+
+ xo_open_list("employee");
+ for ( ; ep->e_first; ep++) {
+ xo_open_instance("employee");
+ rc = xo_emit("{[:-25}{:first-name/%s} ({:nic-name/\"%s\"}){]:}"
+ "{:last-name/%-14..14s/%s}"
+ "{:department/%8u/%u}{:percent-time/%8u/%u}\n",
+ ep->e_first, ep->e_nic, ep->e_last, ep->e_dept, ep->e_percent);
+ xo_emit("{:columns/%d}\n", rc);
+ if (ep->e_percent > 50) {
+ xo_attr("full-time", "%s", "honest & for true");
+ xo_emit("{e:benefits/%s}", "full");
+ }
+ xo_close_instance("employee");
+ }
+
+ xo_close_list("employee");
+ xo_close_container("employees");
+
+ xo_finish();
+
+ return 0;
+}
diff --git a/0.4.6/tests/core/test_08.c b/0.4.6/tests/core/test_08.c
new file mode 100644
index 0000000..7e19ebe
--- /dev/null
+++ b/0.4.6/tests/core/test_08.c
@@ -0,0 +1,157 @@
+/*
+ * Copyright (c) 2015, Juniper Networks, Inc.
+ * All rights reserved.
+ * This SOFTWARE is licensed under the LICENSE provided in the
+ * ../Copyright file. By downloading, installing, copying, or otherwise
+ * using the SOFTWARE, you agree to be bound by the terms of that
+ * LICENSE.
+ * Phil Shafer, July 2015
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <errno.h>
+
+#include "xo.h"
+
+int
+main (int argc, char **argv)
+{
+ struct item {
+ const char *i_title;
+ int i_count;
+ };
+ struct item list[] = {
+ { "gum", 1412 },
+ { "rope", 85 },
+ { "ladder", 0 },
+ { "bolt", 4123 },
+ { "water", 17 },
+ { NULL, 0 }
+ };
+ struct item *ip;
+ int i;
+
+ argc = xo_parse_args(argc, argv);
+ if (argc < 0)
+ return 1;
+
+ for (argc = 1; argv[argc]; argc++) {
+ if (strcmp(argv[argc], "xml") == 0)
+ xo_set_style(NULL, XO_STYLE_XML);
+ else if (strcmp(argv[argc], "json") == 0)
+ xo_set_style(NULL, XO_STYLE_JSON);
+ else if (strcmp(argv[argc], "text") == 0)
+ xo_set_style(NULL, XO_STYLE_TEXT);
+ else if (strcmp(argv[argc], "html") == 0)
+ xo_set_style(NULL, XO_STYLE_HTML);
+ else if (strcmp(argv[argc], "pretty") == 0)
+ xo_set_flags(NULL, XOF_PRETTY);
+ else if (strcmp(argv[argc], "xpath") == 0)
+ xo_set_flags(NULL, XOF_XPATH);
+ else if (strcmp(argv[argc], "info") == 0)
+ xo_set_flags(NULL, XOF_INFO);
+ else if (strcmp(argv[argc], "error") == 0) {
+ close(-1);
+ xo_err(1, "error detected");
+ }
+ }
+
+ xo_set_flags(NULL, XOF_KEYS);
+ xo_set_program("test");
+
+ xo_open_container_h(NULL, "top");
+
+ xo_open_container("data");
+ xo_open_container("contents");
+ xo_open_list("item");
+
+ xo_emit("{T:Item/%-10s}{T:Count/%12s}\n");
+
+ for (ip = list; ip->i_title; ip++) {
+ xo_open_instance("item");
+
+ xo_emit("{k:name/%-10s/%s}{n:count/%12u/%u}\n",
+ ip->i_title, ip->i_count);
+
+ xo_close_instance("item");
+ }
+
+ xo_close_list("item");
+ xo_close_container("contents");
+ xo_close_container("data");
+
+ xo_emit("\n\n");
+
+ xo_open_container("data2");
+ xo_open_container("contents");
+
+ xo_emit("{T:Item/%-10s}{T:Count/%12s}\n");
+
+ for (ip = list; ip->i_title; ip++) {
+ xo_open_instance("item");
+
+ xo_emit("{k:name/%-10s/%s}{n:count/%12u/%u}\n",
+ ip->i_title, ip->i_count);
+ }
+
+ xo_close_container("data2");
+
+ xo_emit("\n\n");
+
+ xo_open_container("data3");
+ xo_open_marker("m1");
+ xo_open_container("contents");
+
+ xo_emit("{T:Item/%-10s}{T:Count/%12s}\n");
+
+ for (ip = list; ip->i_title; ip++) {
+ xo_open_instance("item");
+
+ xo_emit("{k:name/%-10s/%s}{n:count/%12u/%u}\n",
+ ip->i_title, ip->i_count);
+ }
+
+ xo_close_container("data3"); /* Should be a noop */
+ xo_emit("{:test}", "one");
+
+ xo_close_marker("m1");
+ xo_close_container("data3"); /* Should be a noop */
+
+ xo_emit("\n\n");
+
+ xo_open_container("data4");
+ xo_open_marker("m1");
+ xo_open_container("contents");
+
+ xo_emit("{T:Item/%-10s}{T:Count/%12s}\n");
+
+ for (ip = list; ip->i_title; ip++) {
+ xo_open_instance("item");
+
+ xo_emit("{k:name/%-10s/%s}{n:count/%12u/%u}\n",
+ ip->i_title, ip->i_count);
+
+ xo_open_marker("m2");
+ for (i = 0; i < 3; i++) {
+ xo_open_instance("sub");
+ xo_emit("{Lwc:/Name}{:name/%d} + 1 = {:next/%d}\n", i, i + 1);
+ xo_close_container("data4");
+ }
+ xo_close_marker("m2");
+ xo_emit("{Lwc:/Last}{:last/%d}\n", i);
+ }
+
+ xo_close_container("data4"); /* Should be a noop */
+ xo_emit("{:test}", "one");
+
+ xo_emit("\n\n");
+
+ xo_close_container_h(NULL, "top");
+
+ xo_finish();
+
+ return 0;
+}
diff --git a/0.4.6/tests/core/test_09.c b/0.4.6/tests/core/test_09.c
new file mode 100644
index 0000000..a612a64
--- /dev/null
+++ b/0.4.6/tests/core/test_09.c
@@ -0,0 +1,114 @@
+/*
+ * Copyright (c) 2015, Juniper Networks, Inc.
+ * All rights reserved.
+ * This SOFTWARE is licensed under the LICENSE provided in the
+ * ../Copyright file. By downloading, installing, copying, or otherwise
+ * using the SOFTWARE, you agree to be bound by the terms of that
+ * LICENSE.
+ * Phil Shafer, July 2015
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <errno.h>
+
+#include "xo.h"
+
+int
+main (int argc, char **argv)
+{
+ struct item {
+ const char *i_title;
+ int i_count;
+ };
+ struct item list[] = {
+ { "gum", 1412 },
+ { "rope", 85 },
+ { "ladder", 0 },
+ { "bolt", 4123 },
+ { "water", 17 },
+ { NULL, 0 }
+ };
+ struct item *ip;
+ int i;
+
+ argc = xo_parse_args(argc, argv);
+ if (argc < 0)
+ return 1;
+
+ for (argc = 1; argv[argc]; argc++) {
+ if (strcmp(argv[argc], "xml") == 0)
+ xo_set_style(NULL, XO_STYLE_XML);
+ else if (strcmp(argv[argc], "json") == 0)
+ xo_set_style(NULL, XO_STYLE_JSON);
+ else if (strcmp(argv[argc], "text") == 0)
+ xo_set_style(NULL, XO_STYLE_TEXT);
+ else if (strcmp(argv[argc], "html") == 0)
+ xo_set_style(NULL, XO_STYLE_HTML);
+ else if (strcmp(argv[argc], "pretty") == 0)
+ xo_set_flags(NULL, XOF_PRETTY);
+ else if (strcmp(argv[argc], "xpath") == 0)
+ xo_set_flags(NULL, XOF_XPATH);
+ else if (strcmp(argv[argc], "info") == 0)
+ xo_set_flags(NULL, XOF_INFO);
+ else if (strcmp(argv[argc], "error") == 0) {
+ close(-1);
+ xo_err(1, "error detected");
+ }
+ }
+
+ xo_set_flags(NULL, XOF_KEYS);
+ xo_set_program("test");
+
+ xo_open_container_h(NULL, "top");
+
+ xo_open_container("data");
+ xo_open_container("contents");
+
+ xo_emit("{T:Item/%-10s}{T:Count/%12s}\n");
+
+ for (ip = list; ip->i_title; ip++) {
+ xo_emit("Name: {l:name/%-10s/%s}\n", ip->i_title);
+ }
+
+ xo_close_container("contents");
+
+ xo_emit("\n\n");
+ xo_open_container("contents");
+
+ xo_emit("{T:Item/%-10s}{T:Count/%12s}\n");
+
+ for (ip = list; ip->i_title; ip++) {
+ xo_emit("Name: {l:item/%-10s/%s}\n", ip->i_title);
+ }
+
+ xo_close_container("contents");
+
+ xo_emit("\n\n");
+
+ xo_open_container("contents");
+ xo_emit("{T:Test/%-10s}{T:Three/%12s}\n");
+
+ xo_open_list("item");
+ for (ip = list; ip->i_title; ip++) {
+ xo_emit("Name: {l:item/%-10s/%s}\n", ip->i_title);
+ }
+ xo_emit("{Lwc:/Total:}{:total}\n", "six");
+
+ xo_emit("{:one}", "one");
+ xo_emit("{l:two}", "two");
+ xo_emit("{:three}", "three");
+
+
+ xo_close_container("contents");
+
+ xo_emit("\n\n");
+
+ xo_close_container_h(NULL, "top");
+
+ xo_finish();
+
+ return 0;
+}
diff --git a/0.4.6/tests/core/test_10.c b/0.4.6/tests/core/test_10.c
new file mode 100644
index 0000000..223ec55
--- /dev/null
+++ b/0.4.6/tests/core/test_10.c
@@ -0,0 +1,212 @@
+/*
+ * Copyright (c) 2014, Juniper Networks, Inc.
+ * All rights reserved.
+ * This SOFTWARE is licensed under the LICENSE provided in the
+ * ../Copyright file. By downloading, installing, copying, or otherwise
+ * using the SOFTWARE, you agree to be bound by the terms of that
+ * LICENSE.
+ * Phil Shafer, July 2014
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <errno.h>
+#include <ctype.h>
+
+#include "xo.h"
+
+int
+main (int argc, char **argv)
+{
+ static char base_grocery[] = "GRO";
+ static char base_hardware[] = "HRD";
+ struct item {
+ const char *i_title;
+ int i_sold;
+ int i_instock;
+ int i_onorder;
+ const char *i_sku_base;
+ int i_sku_num;
+ };
+ struct item list[] = {
+ { "gum", 1412, 54, 10, base_grocery, 415 },
+ { "rope", 85, 4, 2, base_hardware, 212 },
+ { "ladder", 0, 2, 1, base_hardware, 517 },
+ { "bolt", 4123, 144, 42, base_hardware, 632 },
+ { "water", 17, 14, 2, base_grocery, 2331 },
+ { NULL, 0, 0, 0, NULL, 0 }
+ };
+ struct item list2[] = {
+ { "fish", 1321, 45, 1, base_grocery, 533 },
+ { NULL, 0, 0, 0, NULL, 0 }
+ };
+ struct item *ip;
+ xo_info_t info[] = {
+ { "in-stock", "number", "Number of items in stock" },
+ { "name", "string", "Name of the item" },
+ { "on-order", "number", "Number of items on order" },
+ { "sku", "string", "Stock Keeping Unit" },
+ { "sold", "number", "Number of items sold" },
+ { NULL, NULL, NULL },
+ };
+ int info_count = (sizeof(info) / sizeof(info[0])) - 1;
+
+ argc = xo_parse_args(argc, argv);
+ if (argc < 0)
+ return 1;
+
+ for (argc = 1; argv[argc]; argc++) {
+ if (strcmp(argv[argc], "xml") == 0)
+ xo_set_style(NULL, XO_STYLE_XML);
+ else if (strcmp(argv[argc], "json") == 0)
+ xo_set_style(NULL, XO_STYLE_JSON);
+ else if (strcmp(argv[argc], "text") == 0)
+ xo_set_style(NULL, XO_STYLE_TEXT);
+ else if (strcmp(argv[argc], "html") == 0)
+ xo_set_style(NULL, XO_STYLE_HTML);
+ else if (strcmp(argv[argc], "pretty") == 0)
+ xo_set_flags(NULL, XOF_PRETTY);
+ else if (strcmp(argv[argc], "xpath") == 0)
+ xo_set_flags(NULL, XOF_XPATH);
+ else if (strcmp(argv[argc], "info") == 0)
+ xo_set_flags(NULL, XOF_INFO);
+ else if (strcmp(argv[argc], "error") == 0) {
+ close(-1);
+ xo_err(1, "error detected");
+ }
+ }
+
+ xo_set_info(NULL, info, info_count);
+ xo_set_flags(NULL, XOF_KEYS);
+
+ /* Normally one would use "XOF_COLOR_ALLOWED", but we want to force it */
+ xo_set_flags(NULL, XOF_COLOR);
+
+ xo_set_version("3.1.4");
+
+ xo_open_container_h(NULL, "top");
+
+ xo_attr("test", "value");
+ xo_open_container("data");
+ xo_open_list("item");
+ xo_attr("test2", "value2");
+
+ static const char *colors[] =
+ { "blue", "green", "red", "yellow", "default", NULL };
+
+ int i;
+ for (i = 0; colors[i]; i++) {
+ if (i > 0)
+ xo_emit("{C:/bg-%s}", colors[i-1]);
+ xo_emit("{C:/fg-%s}{T:/%s}", colors[i], colors[i]);
+ }
+ xo_emit("{C:reset}\n");
+
+ xo_emit("{C:bold}{:data} {C:underline}{:data} {C:inverse}{:data} "
+ "{C:no-bold}{:data} {C:no-inverse}{:data} "
+ "{C:no-underline}{:data}\n",
+ "bold", "bold-ul", "triple", "inv-ul", "underline", "plain");
+
+ xo_emit("{T:Item/%-10s}{C:bold,underline}{T:Total Sold/%12s}{C:no-bold}"
+ "{T:In Stock/%12s}{C:/%s}"
+ "{T:On Order/%12s}{C:normal}{T:SKU/%5s}\n", "inverse");
+
+#if 0
+ xo_finish();
+ return 0;
+#endif
+
+ for (ip = list; ip->i_title; ip++) {
+ xo_open_instance("item");
+ xo_attr("test3", "value3");
+
+ xo_emit("{keq:sku/%s-%u/%s-000-%u}"
+ "{k:name/%-10s/%s}{n:sold/%12u/%u}"
+ "{C:/%s}{:in-stock/%12u/%u}{C:normal}"
+ "{C:/fg-%s}{:on-order/%12u/%u}{C:/fg-default}"
+ "{qkd:sku/%5s-000-%u/%s-000-%u}\n",
+ ip->i_sku_base, ip->i_sku_num,
+ ip->i_title, ip->i_sold,
+ (ip->i_instock < 5) ? "inverse" : "normal", ip->i_instock,
+ (ip->i_onorder > 5) ? "yellow" : "default", ip->i_onorder,
+ ip->i_sku_base, ip->i_sku_num);
+
+ xo_close_instance("item");
+ }
+
+ xo_close_list("item");
+ xo_close_container("data");
+
+ xo_emit("\n\n");
+
+ xo_open_container("data");
+ xo_open_list("item");
+
+ for (ip = list; ip->i_title; ip++) {
+ xo_open_instance("item");
+
+ xo_emit("{keq:sku/%s-%u/%s-000-%u}", ip->i_sku_base, ip->i_sku_num);
+ xo_emit("{L:Item} '{k:name/%s}':\n", ip->i_title);
+ xo_emit("{P: }{L:Total sold}: {n:sold/%u%s}\n",
+ ip->i_sold, ip->i_sold ? ".0" : "");
+ xo_emit("{P: }{Lcw:In stock}{C:inverse}{:in-stock/%u}{C:}\n",
+ ip->i_instock);
+ xo_emit("{P: }{Lcw:On order}{:on-order/%u}\n", ip->i_onorder);
+ xo_emit("{P: }{L:SKU}: {qkd:sku/%s-000-%u}\n",
+ ip->i_sku_base, ip->i_sku_num);
+
+ xo_close_instance("item");
+ }
+
+ xo_close_list("item");
+ xo_close_container("data");
+
+ xo_open_container("data");
+ xo_open_list("item");
+
+ for (ip = list2; ip->i_title; ip++) {
+ xo_open_instance("item");
+
+ xo_emit("{keq:sku/%s-%u/%s-000-%u}", ip->i_sku_base, ip->i_sku_num);
+ xo_emit("{L:Item} '{k:name/%s}':\n", ip->i_title);
+ xo_emit("{P: }{C:bg-blue , fg-white, bold }{L:Total sold}: "
+ "{n:sold/%u%s}{C:}\n",
+ ip->i_sold, ip->i_sold ? ".0" : "");
+ xo_emit("{P: }{Lcw:In stock}{:in-stock/%u}\n", ip->i_instock);
+ xo_emit("{P: }{Lcw:On order}{:on-order/%u}\n", ip->i_onorder);
+ xo_emit("{P: }{L:SKU}: {qkd:sku/%s-000-%u}\n",
+ ip->i_sku_base, ip->i_sku_num);
+
+ xo_close_instance("item");
+ }
+
+ xo_close_list("item");
+ xo_close_container("data");
+
+ xo_open_container("data");
+ xo_open_list("item");
+
+ for (ip = list; ip->i_title; ip++) {
+ xo_attr("test4", "value4");
+ xo_emit("{Lwc:Item}{l:item}\n", ip->i_title);
+ }
+
+ xo_close_list("item");
+ xo_close_container("data");
+
+ xo_emit("X{P:}X", "epic fail");
+ xo_emit("X{T:}X", "epic fail");
+ xo_emit("X{N:}X", "epic fail");
+ xo_emit("X{L:}X\n", "epic fail");
+
+ xo_emit("X{P: }X{Lwc:Cost}{:cost/%u}\n", 425);
+ xo_emit("X{P:/%30s}X{Lwc:Cost}{:cost/%u}\n", "", 455);
+
+ xo_close_container_h(NULL, "top");
+
+ xo_finish();
+
+ return 0;
+}
diff --git a/0.4.6/tests/core/test_11.c b/0.4.6/tests/core/test_11.c
new file mode 100644
index 0000000..60851df
--- /dev/null
+++ b/0.4.6/tests/core/test_11.c
@@ -0,0 +1,109 @@
+/*
+ * Copyright (c) 2014, Juniper Networks, Inc.
+ * All rights reserved.
+ * This SOFTWARE is licensed under the LICENSE provided in the
+ * ../Copyright file. By downloading, installing, copying, or otherwise
+ * using the SOFTWARE, you agree to be bound by the terms of that
+ * LICENSE.
+ * Phil Shafer, July 2014
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <errno.h>
+#include <time.h>
+#include <ctype.h>
+#include <syslog.h>
+
+#include "xo.h"
+
+void
+test_syslog_open (void)
+{
+ printf("syslog open\n");
+}
+
+void
+test_syslog_close (void)
+{
+ printf("syslog close\n");
+}
+
+void
+test_syslog_send (const char *full_msg, const char *v0_hdr,
+ const char *text_only)
+{
+ printf("{{%s}}\n{{%s}}\n{{%s}}\n\n", full_msg, v0_hdr, text_only);
+}
+
+int
+main (int argc, char **argv)
+{
+ int unit_test = 1;
+ int fire = 0;
+ const char *tzone = "EST";
+
+ argc = xo_parse_args(argc, argv);
+ if (argc < 0)
+ return 1;
+
+ for (argc = 1; argv[argc]; argc++) {
+ if (strcmp(argv[argc], "full") == 0)
+ unit_test = 0;
+ else if (strcmp(argv[argc], "fire") == 0)
+ fire = 1;
+ else if (strcmp(argv[argc], "tz") == 0)
+ tzone = argv[++argc];
+ }
+
+ setenv("TZ", tzone, 1);
+ tzset();
+
+ if (!fire) {
+ xo_set_syslog_handler(test_syslog_open, test_syslog_send,
+ test_syslog_close);
+ }
+
+ if (unit_test) {
+ xo_set_unit_test_mode(1);
+ xo_open_log("test-program", LOG_PERROR, 0);
+ }
+
+ xo_set_version("3.1.4");
+ xo_set_syslog_enterprise_id(42); /* SunOs */
+
+ xo_open_container_h(NULL, "top");
+
+ xo_syslog(LOG_INFO | LOG_KERN, "animal-status",
+ "The {:animal} is {:state}", "snake", "loose");
+ xo_syslog(LOG_INFO | LOG_MAIL, "animal-consumed",
+ "My {:animal} ate your {:pet}", "snake", "hamster");
+ xo_syslog(LOG_NOTICE | LOG_DAEMON, "animal-talk",
+ "{:count/%d} {:animal} said {:quote}", 1, "owl", "\"e=m\\c[2]\"");
+
+ /*
+ <165>1 2003-10-11T22:14:15.003Z mymachine.example.com
+ evntslog - ID47 [exampleSDID@32473 iut="3" eventSource=
+ "Application" eventID="1011"] BOMAn application
+ event log entry...
+
+ This example is modeled after Example 1. However, this time it
+ contains STRUCTURED-DATA, a single element with the value
+ "[exampleSDID@32473 iut="3" eventSource="Application"
+ eventID="1011"]". The MSG itself is "An application event log
+ entry..." The BOM at the beginning of MSG indicates UTF-8 encoding.
+ */
+
+ xo_set_syslog_enterprise_id(32473);
+ xo_syslog(LOG_LOCAL4 | LOG_NOTICE, "ID47",
+ "{e:iut/%u}An {:event-source} {:event-id/%u} log entry",
+ 3, "application", 1011);
+
+ xo_close_container_h(NULL, "top");
+
+ xo_finish();
+
+ return 0;
+}
OpenPOWER on IntegriCloud